leetcode122. 买卖股票的最佳时机 II(数组贪心)

贪心问题

思路

遍历整个数组,只要当天卖出去能比前一天买进来的利润大就可以直接相减,再把总利润相加。
很自然有一个问题就是,为什么今天的股票又能卖出去,又能买进来?试想一下1 2 3这三个的最大利润为3-1=2,而同样的可以先用中间数减去最小的数2-1=1再加上最大的数减去中间数3-2=1,这样求得的最大利润也同样是2。

代码

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int i=0,j=1;
        int length = prices.size();
        if(length<2) return 0;
        int sum=0;
        while(j<length){
            if(prices[j]>prices[i]){
                sum+=(prices[j]-prices[i]);
            }
            ++i;++j;
        }
        return sum;
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值