題目描述
屏幕快照 2018-09-12 17.08.34.png
解決思路
- 既然已經(jīng)知道每天的股票價(jià)格贡歧,那便是只要在價(jià)格呈現(xiàn)增長(zhǎng)的階段起點(diǎn)買入,在呈現(xiàn)降低的階段買入就可以了捧灰。
- 化繁為簡(jiǎn)钻注,只需要比較相鄰兩個(gè)數(shù)字的大小蚂且,如果是增長(zhǎng)直接將增長(zhǎng)的價(jià)格加入到盈利里面。
- 無需考慮買入當(dāng)天不能賣出的情況幅恋。這對(duì)最后的最大盈利沒有任何影響
注意
注意控制循環(huán)的終止條件
一開始還使用了一個(gè)標(biāo)記梁用來標(biāo)記當(dāng)前處于買入了狀態(tài)還是未買入狀態(tài)杏死,后面發(fā)現(xiàn)無需判斷,因?yàn)槭亲畲笥圆恍枰袛噍^差的那些情況捆交,只要是股票增長(zhǎng)就會(huì)盈利
實(shí)現(xiàn)代碼
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;
}
}
通過情況
通過