12.3—贪心法—Best Time to Buy and Sell Sto
来源:互联网 发布:社交网络剧情 编辑:程序博客网 时间:2024/05/21 06:22
描述
Say you have an array for which the i-th element is the price of a given stock on day i.
If you were only permied to complete at most one transaction (ie, buy one and sell one share of the
stock), design an algorithm to find the maximum profit.
Say you have an array for which the i-th element is the price of a given stock on day i.
If you were only permied to complete at most one transaction (ie, buy one and sell one share of the
stock), design an algorithm to find the maximum profit.
#include<iostream>#include<vector>#include<limits>using namespace std;//===int SellStock1(int a[], int n){int max = 0;for (int i = 0; i < n - 1; i++){for (int j = i + 1; j < n; j++){if (a[j] - a[i]>max)max = a[j] - a[i];}}return max;}//===int ThreeNumMax(int a, int b, int c){if (a>=b&&a >= c)return a;if (b >= c&&b >= a)return b;if (c >= a&&c >= b)return c;}int SellStock2(int a[], int begin, int end){if (a == NULL || begin >= end)return 0;int min = INT_MAX;int max = INT_MIN;int minindex = begin;int maxindex = end;for (int i = begin; i <= end; i++){if (a[i]>max){max = a[i]; maxindex = i;}if (a[i] < min){min = a[i]; minindex = i;}}if (maxindex > minindex)return max - min;else{int tmp1 = INT_MAX;int tmp2 = INT_MIN;for (int i = begin; i < maxindex - 1; i++)if (a[i] < tmp1) tmp1 = a[i];for (int i = minindex + 1; i <= end; i++)if (a[i] > tmp2) tmp2 = a[i];return ThreeNumMax(max - tmp1, tmp2 - min, SellStock2(a, maxindex + 1, minindex - 1));}}//===int SellStock3(int a[], int n){int max = INT_MIN;int min_cur = a[0];for (int i = 1; i < n; i++){if (a[i] - min_cur > max)max = a[i] - min_cur;if (a[i] < min_cur)min_cur = a[i];}return max;}int main(){const int n = 6;int a[n] = { 2, 4, 1, 5, 3, 4 };int max1 = SellStock1(a, n);int max2 = SellStock2(a, 0, n - 1);int max3 = SellStock3(a, n);cout << max1 << endl;cout << max2 << endl;cout << max3 << endl;}
阅读全文
0 0
- 12.3—贪心法—Best Time to Buy and Sell Sto
- 12.4—贪心法—Best Time to Buy and Sell Sto II
- 13.5—动态规划—Best Time to Buy and Sell Sto III
- leetcode 122.Best Time to Buy and Sell Stock II —— 贪心
- Leetcode 贪心 Best Time to Buy and Sell Stock
- Leetcode 贪心 Best Time to Buy and Sell StockII
- Leetcode 贪心 Best Time to Buy and Sell Stock III
- [leetcode][贪心] Best Time to Buy and Sell Stock II
- LeetCode Best Time to Buy and Sell Stock II(贪心)
- LeetCode 121 Best Time to Buy and Sell Stock (贪心)
- 121. Best Time to Buy and Sell Stock(贪心)
- leetcode---Best Time to Buy and Sell Stock II---贪心
- Leetcode —— Best Time to Buy and Sell Stock
- LeetCode——Best Time to Buy and Sell Stock
- LeetCode——Best Time to Buy and Sell Stock
- leetcode——Best Time to Buy and Sell Stock
- Best Time to Buy and Sell Stock——LeetCode
- leetcode——Best Time to Buy and Sell Stock
- css 小技巧
- 在linux中安装jdk,以及linux下java环境变量的配置问题
- 12.2—贪心法—Jump Game II
- iOS中的@property的属性
- 游戏room8 第六关的答案
- 12.3—贪心法—Best Time to Buy and Sell Sto
- 系统开发团队需要什么样的专业人才?
- 12.4—贪心法—Best Time to Buy and Sell Sto II
- Echarts关系图-力引导布局
- 12.5—贪心法—Longest Substring Without Repeating Characters
- 系统开发团队如何招聘到合适的人才?
- 12.6—贪心法—Container With Most Water
- 我所接触的工程师们
- java基础复习-socket