[LeetCode] 0121. 株を売買するのに最適な時期

Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク

簡単

 


配列が与えられます 価格 どこ 価格[i] は、特定の株式の価格です。  日。

を選択して利益を最大化したいと考えています。 一日 1つの株を買って、 将来のさまざまな日 その株を売るためです。

戻る この取引から達成できる最大利益利益が得られない場合は返品してください。 0.

例 1:

入力: 価格 = [7,1,5,3,6,4]
出力: 5
説明: 2 日目に買い (価格 = 1)、5 日目に売る (価格 = 6)、利益 = 6-1 = 5。売る前に買う必要があるため、2 日目に買って 1 日目に売ることはできないことに注意してください。

例 2:

入力: 価格 = [7,6,4,3,1]
出力: 0
説明: この場合、取引は行われず、最大利益 = 0 になります。

制約:

  • 1 <= 価格.長さ <= 10 5
  • 0 <= 価格[i] <= 10 4

パイソン

				
					# 時間計算量: O(n) # 空間計算量: 入力による O(1) import リスト クラス Solution(object): def maxProfit(self, 価格: List[int]) -> int:profit, smallestPrice = 0, 99999 for価格の価格: 価格 < smallestPrice: smallestPrice = 価格 それ以外の場合: 利益 = max(利益, 価格 - smallestPrice) 利益を返す PriceList = [7, 1, 5, 3, 6, 4] solution = Solution() print(solution. maxProfit(価格リスト))
				
			
ja日本語