給定一個陣列,它的第 i 個元素是一支給定股票第 i 天的價格,設計一個演算法來計算你所能獲取的最大利潤,你可以盡可能地完成更多的交易(多次買賣一支股票),注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)
解題思路
如果把陣列想象成一個線性圖,那很自然的,最大利潤就是所有上坡之和,而形成上坡的條件就是后一個數要比前一個數大,回到本題,因此只要今天價格小于明天價格,就在今天買入然后明天賣出,利潤之和就是最大的
class Solution {
public int maxProfit(int[] prices) {
int ans = 0;
for(int i = 1; i <= prices.length - 1; i++) {
if(prices[i] > prices[i - 1]) {
ans += prices[i] - prices[i - 1];
}
}
return ans;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/228736.html
標籤:其他
上一篇:三角形的最大周長
下一篇:線性表結構:單向鏈表
