Descrition:
//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 permitted to complete at most one transaction(ie, buy one and sell one share of the
// stock), design an algorithm to find the maximum profit.
**分析:**本题可以采用贪心算法,需要注意的是卖出必须在买入之后。
**说明:**本系列代码均在本地IDE VS2015中编译通过。
代码如下所示:
//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 permitted 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<algorithm>
using namespace std;
class Solution {
public:
int Best_Profit(vector<int>& number) {
if (number.size() < 2)
return 0;
int profit = 0;
int cur_min = number[0];
for (int i = 0; i < number.size();++i) {
profit = max(profit,number[i] - cur_min);
cur_min = min(cur_min,number[i]);
}
return profit;
}
};
int main(int argc,char** argv) {
vector<int> test = {3,4,1,7,5,2};
Solution test_;
cout << test_.Best_Profit(test) << endl;
system("pause");
return 0;
}
结果: