一開始是求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; }};新聞熱點
疑難解答