122. 买卖股票的最佳时机 II(leetcode)

https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        vector<int> f(prices.size()+1,0);
        int res=0;
        for(int i=0;i<prices.size()-1;i++)
        {
            // 贪心:有增就加
            if(prices[i]<prices[i+1])
            {
                res+=prices[i+1]-prices[i];
            }
        }
        return res;
    }
};
class Solution {
    public int maxProfit(int[] prices) {
        // f[i][j]表示在前i天中交易获得的最大利润,j=0意味着持有股票,j=1意味着不持有
        // 以第i天是否持有股票划分子集
        // f[i][0]=max(f[i-1][0],f[i-1][1]-prices[i])
        // f[i][1]=max(f[i-1][1],f[i-1][0]+prices[i]);
        // f[1][0]=-prices[0]
        int[][] f=new int[prices.length+1][2];
        f[1][0]=-prices[0];
        for(int i=2;i<=prices.length;i++)
        {
            f[i][0]=Math.max(f[i-1][0],f[i-1][1]-prices[i-1]);
            f[i][1]=Math.max(f[i-1][1],f[i-1][0]+prices[i-1]);
        }
        return f[prices.length][1];
    }
}

 

posted @ 2024-09-06 00:39  风乐  阅读(6)  评论(0)    收藏  举报