一开始是求2维dp,不行,然后以为是像上一题那样,那么只需要找出每一个买入点和卖出点。其实每一个买入和卖出就是一个连续上升序列,只需要求出每一个上升序列再求和就ok,记得遍历最后一个点的时候也要在求一次,别漏了。
class Solution {public: int maxPRofit(vector<int>& prices) { int minn, sum; if(prices.size() == 0) return 0; minn = prices[0]; sum = 0; for(int i = 1; i < prices.size(); ++ i){ if(prices[i] < prices[i - 1]){ sum = sum + prices[i - 1] - minn; minn = prices[i]; } } sum = sum + prices[prices.size() - 1] - minn; return sum; }};新闻热点
疑难解答