动态规划做,在做之前,序列型问题,一般是双数组。

  1. 一定以给出的数组开始分条件讨论,这样讨论完了其实代码就写出来乐。、
  2. 计算顺序,最后结果是哪一个。
  3. 写df一般,对于dfi是指的是这一天,数组一般【i-1】,写的时候复原就好,你就知道是这一天的数组中的数就行
  4. 并且买卖股票是同一天两个状态一直进行的。
class Solution {
public:
    /**
     * 
     * @param prices int整型vector 
     * @return int整型
     */
    int maxProfit(vector<int>& prices) {
        // write code here

        int res = 0;

        if(!prices.size()){
            return res;
        }

        int dp[prices.size()][2];

        dp[0][0] = 0;
        dp[0][1] = -prices[0];

        //第二天开始遍历

        for(int i = 1; i<prices.size();i++){

            dp[i][0] = max(dp[i-1][0],dp[i-1][1]+prices[i]);
            dp[i][1] = max(dp[i-1][1],-prices[i]);


        }

        return dp[prices.size()-1][0];



    }
};