[LeetCode] #122 Best Time to Buy and Sell Stock II 解題
題型解說
這是一題難度為簡單的題目
需要設計一個方法,此方法會傳入一個整數陣列 prices
這個陣列表示每一天的股票價格,若可以購買無數次(買入 + 賣出)
回傳最大利潤是多少
解題思路
這一題是 [LeetCode] #121 Best Time to Buy and Sell Stock 解題 的延伸
上一題是要求只能買一次,這一題是可以買無數次
但規則一樣是手頭有買入的股票前不能再買入
一開始解法是把所有的狀況走一遍,找出利潤最好的那個
後來看了官方提供的思路,其實只要用迴圈歷遍一次,只要比明天的價格低就把差價算到利潤去
因為最大的利潤可以拆成多個小利潤的和
程式碼
Java
class Solution {
public int maxProfit(int[] prices) {
int resule = 0;
for (int i = 0; i < prices.length - 1; ++i) {
if (prices[i + 1] > prices[i]) {
resule += prices[i + 1] - prices[i];
}
}
return resule;
}
}