LeetCode 面试必备100题:Best Time to Buy and Sell Stock II


🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏:LeetCode面试必备100题(优质好文持续更新中……)🚀


目录

一、题目描述

二、测试样例

三、解题思路

四、代码实现

五、题目链接


一、题目描述

股票的价格存储在一个数组中,其中 prices[i] 是给定股票在第 i 天的价格。

可以根据需要完成任意数量的交易(即多次买入和卖出股票),求可以实现的最大利润

注意:不能同时进行多项交易(即:必须先卖出股票,然后才能再次购买)。

二、测试样例

输入:prices = [7,1,5,3,6,4]

输出:7

在第 2 天买入(价格为1),在第 3 天卖出(价格为5),利润等于 5-1 = 4。

然后,在第 4 天买入(价格为3),在第 5 天卖出(价格为6),利润等于 6-3 = 3。

所以,总的利润为 4 + 3 = 7。

三、解题思路

因为本题可以多次买入和卖出股票,那么,如果当前这一天比前一天的价格高,就卖出,这样得到的利润总和就是总利润。

四、代码实现

class Solution
{

public:

    int maxProfit(vector<int>& prices) {
        int sum = 0;
        for (int i = 1; i < prices.size() ; ++i) {
            if (prices[i-1] < prices[i]) {
                sum += prices[i] - prices[i-1];
            }
        }
        return sum;
    }
};

五、题目链接

Best Time to Buy and Sell Stock II

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值