题目描述
解决思路
- 既然已经知道每天的股票价格,那便是只要在价格呈现增长的阶段起点买入,在呈现降低的阶段买入就可以了。
- 化繁为简,只需要比较相邻两个数字的大小,如果是增长直接将增长的价格加入到盈利里面。
- 无需考虑买入当天不能卖出的情况。这对最后的最大盈利没有任何影响
注意
注意控制循环的终止条件
一开始还使用了一个标记梁用来标记当前处于买入了状态还是未买入状态,后面发现无需判断,因为是最大盈利所以不需要判断较差的那些情况,只要是股票增长就会盈利
实现代码
class Solution {
public int maxProfit(int[] prices) {
if(prices == null)
return 0;
else if(prices.length == 0 || prices.length == 1)
return 0;
int money = 0;
for(int i = 0;i<prices.length-1;i++)
{
if(prices[i]<prices[i+1])
{
money = money+prices[i+1] - prices[i];
}
}
return money;
}
}