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

举报
Linux猿 发表于 2021/10/24 21:28:50 2021/10/24
【摘要】 🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊! 🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬

🎈 作者:Linux猿

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

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


一、题目描述
股票的价格存储在一个数组中,其中 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


CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

欢迎小伙伴们点赞👍、收藏⭐、留言💬


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。