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

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

中くらい


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

毎日、株式を購入または売却するか、あるいはその両方を決定できます。保有することのみが可能です。 多くても1つ ただし、いつでも株式を購入してすぐに売却することができます。 同日.

見つけて返す の 最大 達成できる利益.

 

例 1:

入力: 価格 = [7,1,5,3,6,4]
出力: 7
説明: 2 日目に購入 (価格 = 1)、3 日目に売却 (価格 = 5)、利益 = 5-1 = 4。その後、4 日目に購入 (価格 = 3)、5 日目に売却 (価格 = 6)、利益= 6-3 = 3。合計利益は 4 + 3 = 7 です。

例 2:

入力: 価格 = [1,2,3,4,5]
出力: 4
説明: 1 日目に購入 (価格 = 1)、5 日目に売却 (価格 = 5)、利益 = 5-1 = 4。合計利益は 4 です。

例 3:

入力: 価格 = [7,6,4,3,1]
出力: 0
説明: 利益をプラスにする方法はないので、最大利益を0にするために株を買うことはありません。

 

制約:

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

パイソン

				
					# 時間計算量: O(n) # 空間計算量: import リスト クラスの入力による O(1) 解決策: def maxProfit(self,price: List[int]) -> int:profit = 0 for i in range(1, len) (価格)): 価格[i] > 価格[i-1]の場合: 利益 += 価格[i] - 価格[i-1] 利益を返します 価格 = [7, 1, 5, 3, 6, 4] print (ソリューション().maxProfit(価格))
				
			
ja日本語