121. 買賣股票的最佳時機

我要是說我只想到了n2的算法,我肯定給會被自己氣死
這道題根本不算動態規劃,遍歷的時候每次記下之前最小的股票值是多少,最大的股票價格是多少,沒多一次就更新一下這兩個值。

#include <unordered_map>
#include <iostream>
#include <stack>
#include <string>
#include <vector>

using namespace std;
int maxProfit(vector<int>& prices) {
	if(prices.empty() || 1==prices.size())
		return 0;
	int maxx = -1;
	int minn = prices[0];

	for(int i=1; i<(int)prices.size();++i)
	{
		int temp = 0;
		if(prices[i]>minn)
		{
			temp = prices[i] - minn;
			maxx =max(temp,maxx);
		}
		minn = min(minn,prices[i]);
	}
	return max(0,maxx);
}
int main(void)
{
	int a[]={7,1,5,3,6,4};
	vector<int>b(begin(a),end(a));
	cout<< maxProfit(b)<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章