比较简单的动态规划。用一个变量保存最小值,另一个变量保存最大收益。
遍历数组:
1.当该数比最小值小时,将其赋给最小值。
2.将该数与最小值相减得到该数所能得到的最大收益,若该收益比最大收益大,将其赋给最大收益
最终即得最大收益。
class Solution { public: /** * * @param prices int整型vector * @return int整型 */ int maxProfit(vector<int>& prices) { // write code here int max = 0; int min = 10000; for(int i = 0;i < prices.size();i++){ if(prices.at(i)<min){ min = prices.at(i); } int diff = prices.at(i) - min; if(diff > max){ max = diff; } } return max; } };