本文主要是介绍Leetcode#122. Best Time to Buy and Sell Stock II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:一个数组代表每天的股票价格,你可以选择多次买入卖出,使得收益最大。需要注意的是,下一次买入之前一定要先卖出。
解题思路:其实就考虑一点,什么时候收益最大?答案是只要有利润,就进行交易。也就是说,只要下一次的价格比当前价格大,就交易。
总体来看,只要今天比前一天的价格高,就有收益,最后将这些收益累加,就是最大收益。
C++实现如下:
class Solution {
public:int maxProfit(vector<int>& prices) {int maxPrice = 0;for(int i = 1; i < prices.size(); i++){int delta = prices[i] - prices[i - 1];if(delta > 0)maxPrice += delta;}return maxPrice;}
};
python实现如下:
class Solution:def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""maxPrice = 0for i in range(1, len(prices)):delta = prices[i] - prices[i - 1]if delta > 0:maxPrice += deltareturn maxPrice
这篇关于Leetcode#122. Best Time to Buy and Sell Stock II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!