题目:买卖股票的最佳时机 II(题号122)
重点思路
- 题目最终是问一个最大利润,言外之意就是不需要给出具体怎么操作,怎么买卖,这其实是降低了题目的难度
- 一般遇到这种只需要获取一个最大值的问题,首先考虑一下贪心算法
贪心算法
我理解的贪心算法,其实不是一个具体的算法,也就是没有具体的公式,不像动态规划等算法有一套专门的公式,更重要的就是结合实际进行分析。
百度百科定义
本题思路
对于本题,要求出很多天的一个综合最大利润。根据贪心算法思路,我们可以拆解问题,我们只需要一天天获取最大利润,这样我们每一天都获得最大利润,那我们最终就可以获得最大利润,这样想突然就简单了,就拿我们买股票来说,我们肯定希望我们每一波上涨都可以赶上(我们很贪心),因此,我们只要计算所有上涨的钱,就是我们可能的最大利润啦
JAVA代码
class Solution {
public int maxProfit(int[] prices) {
int result=0;
int n = prices.length;
for (int i = 1;i<n;i++){
//比较相邻两天,看有没有上涨,上涨了我们就当做自己的利润
if(prices[i]-prices[i-1]>0){
//总利润中加入这一波上涨
result += prices[i]-prices[i-1];
}
}
return result;
}
}