【贪心算法力扣C++】---122.买卖股票的最佳时机II
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【贪心算法力扣C++】---122.买卖股票的最佳时机II,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1384字,纯文字阅读大概需要2分钟。
内容图文
![【贪心算法力扣C++】---122.买卖股票的最佳时机II](/upload/InfoBanner/zyjiaocheng/640/a3ad722660714a0f86cc9da0a9352064.jpg)
题目:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例 1:
输入: [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
示例 2:
输入: [1,2,3,4,5]
输出: 4
解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。 因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
示例 3:
输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii
思路:
贪心算法,就是要找到局部最优解,那就是只要是盈利的我们就算进总和里
比如说示例1,
7->1亏损6元,这个就不要了
1->5盈利4元,要了
5->3亏损2元,不要
3->6盈利3元,要了
6->4亏损2元,不要
那盈利就是7元
(但是这个解法应该有破绽,只能用于这个题)
上代码:
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sum = 0;
for(int i=1;i<prices.size();i++)
if(prices[i] - prices[i-1]>0)
sum +=prices[i] - prices[i-1];
return sum;
}
};
内容总结
以上是互联网集市为您收集整理的【贪心算法力扣C++】---122.买卖股票的最佳时机II全部内容,希望文章能够帮你解决【贪心算法力扣C++】---122.买卖股票的最佳时机II所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。