LeetCode 面试必备100题:Best Time to Buy and Sell Stock II
Posted Linux猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}
};
五、题目链接
以上是关于LeetCode 面试必备100题:Best Time to Buy and Sell Stock II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 面试必备100题:Climbing Stairs 爬楼梯的方法
LeetCode 面试必备100题:Add Two Numbers 两数相加
LeetCode面试必备100题:3Sum 数组中查找三个和为零的数
LeetCode 面试必备100题:无重复字符的最长子串 Longest Substring Without Repeating Characters