2017年2月7日 星期二

[LeetCode] 122. Best Time to Buy and Sell Stock II

轉自LeetCode

Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
<Solution>

這題是 Best Time to Buy and Sell Stock 的衍生題

差別在於,這次可以多次買賣

思路也不困難

因為是要求最大利潤,且題目要求只能先買後賣

所以,只要利潤是正的,也就是賣的價格,比買的價格高就可以

歷遍一次,看前一天的價格是否比今天低,是的話就交易

code 如下
c++

也可以用 DP 的解法
  • 用 cash 表示買入股票後,手上的現金
  • 用 profit 表示獲利
目標就是要這兩個值都是最大值

kotlin

    沒有留言:

    張貼留言