C語(yǔ)言-買賣股票的最佳實(shí)際II(簡(jiǎn)單題審題即可)
#題目
給你一個(gè)整數(shù)數(shù)組 prices ,其中 prices[i] 表示某支股票第 i 天的價(jià)格。
在每一天,你可以決定是否購(gòu)買和/或出售股票。你在任何時(shí)候 最多 只能持有 一股 股票。你也可以先購(gòu)買,然后在 同一天 出售。
返回 你能獲得的 最大 利潤(rùn) 。
示例 1:
輸入:prices = [7,1,5,3,6,4]
輸出:7
解釋:在第 2 天(股票價(jià)格 = 1)的時(shí)候買入,在第 3 天(股票價(jià)格 = 5)的時(shí)候賣出, 這筆交易所能獲得利潤(rùn) = 5 - 1 = 4 。
? ? ?隨后,在第 4 天(股票價(jià)格 = 3)的時(shí)候買入,在第 5 天(股票價(jià)格 = 6)的時(shí)候賣出, 這筆交易所能獲得利潤(rùn) = 6 - 3 = 3 。
? ? ?總利潤(rùn)為 4 + 3 = 7 。
示例 2:
輸入:prices = [1,2,3,4,5]
輸出:4
解釋:在第 1 天(股票價(jià)格 = 1)的時(shí)候買入,在第 5 天 (股票價(jià)格 = 5)的時(shí)候賣出, 這筆交易所能獲得利潤(rùn) = 5 - 1 = 4 。
總利潤(rùn)為 4 。
示例 3:
輸入:prices = [7,6,4,3,1]
輸出:0
解釋:在這種情況下, 交易無法獲得正利潤(rùn),所以不參與交易可以獲得最大利潤(rùn),最大利潤(rùn)為 0 。
提示:
1 <= prices.length <= 3 * 104
0 <= prices[i] <= 104
###解題思路
審題可以觀察到,相鄰股價(jià)大于0即可盈利,要使利潤(rùn)最大化,只需在遍歷過程中,用if篩除掉利潤(rùn)profits小于零的,大于零的累加即可。
###代碼
int?maxProfit(int*?prices,?int?pricesSize){
????int?profits=0;
????int?i,j;
????for(i=0;i<pricesSize-1;i++)
????{
????????if(prices[i+1]-prices[i]>=0)
????????{
????????????profits+=prices[i+1]-prices[i];
????????}
????}
????return?profits;
}