没有想出来,网上搜的答案。甚至搜到了答案,提交正确了,我都不知道它为什么就对了。
教训:不要把事情复杂化。
#include <iostream> using namespace std; class Solution { public: int maxProfit(vector<int> &prices) { int result = 0; int i = 0; int len = prices.size(); if(len<2) return 0; for(i=1;i<len;++i) { if(prices[i]>prices[i-1]) { result += prices[i]-prices[i-1]; } } return result; } }; int main(void) { return 0; }
有点贪心的意思,可以用证明贪心的办法证明它正确。