Code Kata | day 17 maxProfit


Q.価格は並び、要素ごとに毎日の株価です.一度しか取引できない=売買できるなら、最大の利益はいくらですか?

0回

def maxProfit(prices):
  min_price = min(prices)
  start = prices.index(min_price)
  max_price = 0
  for i in range(start+1, len(prices)):
      max_price = max (prices[i], max_price)

  return max_price - min_price
Review
  • 2つの価格要素があればforドアは実行しない
  • ▼▼▼1回

    def maxProfit2(prices):
       max_profit, min_price = 0, float('inf')
       for price in prices:
           min_price = min(min_price, price)
           profit = price - min_price
           max_profit = max(max_profit, profit)
       return max_profit
    Review
  • inf:最大の数字を表します.主に最大値を格納する変数に大きな値を指定する必要がある場合.
  • 価格の各要素は最小の値、収益(この要素-最小の要素)を算出し、変数に格納する.
  • 2回目

    def maxProfit2(prices):
       max_profit, min_price = 0, float('inf')
       for price in prices:
           min_price = min(min_price, price)
           max_profit = max(max_profit, price - min_price)
       return max_profit