Menu
CoddyTech

Best Time to Buy and Sell Stock

やさしい貪欲法python iconjava iconcpp iconc iconjs icon+10

リスト prices が与えられます。ここで、prices[i] は i 日目の株価です。ある日に株を1株買い、後の日に売ることができます。得られる最大の利益を返してください。すべての取引で損失が発生する場合は、0 を返してください。

関数

maxProfit(prices: integer-array) → integer
pricesinteger-array
各日の株価を順番に
戻り値integer
1回の購入とその後の売却で得られる最大利益、または0

制約

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • 取引は最大1回まで行い、購入した日より後の日に売却します。

例

入力
prices = [7, 2, 5, 9, 1, 4]
出力
7
説明
1日目に2で買い、3日目に9で売ると、利益は7です。最安値の1は4日目で、9の後になるため、その後に売って得られる最大の利益は3だけです。
challenge icon

発展問題

一度に保有できる株が最大1株で、好きなだけ取引できるとしたらどうでしょうか?

コードをリセット
def maxProfit(prices):
    # ここにコードを記述してください

テスト #1

テスト #2

引数

prices = [7, 2, 5, 9, 1, 4]

期待される出力

7