LeetCode122.买卖股票的最佳时机 II
这道题的难度很小,主要是要为大家介绍一下贪心算法,首先我们来看一下题目:
在此,我们可以考虑使用贪心算法,所谓贪心算法就是在当前的状态下,来获取当前状态下最好的结果或者利益,不用从全局来考虑问题,这就是贪心算法的思想。这道题目我们用贪心算法,只用考虑当前状态下的最大利润,只要是当天股票相较于上一天来说有涨,那么我们就卖掉获取利润,然后一直到最后一天,这样总的利润加起来就是我们可以获取的最大利润,这种算法的时间复杂度为 ,如下是此题的代码:
java:
public class Solution {
public int maxProfit(int[] prices) {
int maxProfit = 0;
for(int i = 1; i < prices.length; i++){
if(prices[i] > prices[i - 1])
maxProfit += prices[i] - prices[i - 1];
}
return maxProfit;
}
}
python:
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
maxProfit = 0
for i in range(len(prices) - 1):
if prices[i + 1] > prices[i]:
maxProfit += prices[i + 1] - prices[i]
return maxProfit
希望通过这道题能让大家明白贪心算法的原理和应用场景,谢谢。