タイトル:i番目の要素が与えられた株式のi日の価格である配列を、与えられました。
あなただけあなたが得ることができる最大の利益を計算するアルゴリズムを設計するために、トランザクション(すなわち買いと株式を売却)を完了するまで許可されている場合。
株式を購入する前に株式を売却しないように注意してください。
例:
入力:[7,1,5,3,6,4]
出力:5
販売価格6の5日目に、1元に翌日購入します。
販売価格、販売価格は購入価格の前にすることはできませんので、利益は= 6 7-1できないことに注意してください、7があります。
分析:
最大の利益=最大- (上限価格前の、現在の価格の前に最低購入価格)
最大の利益と最小価格を初期化する必要があり、最高価格を見つける必要があり、初期値は0の最小の利益のために、より小さな数に設定する必要があります最低価格が懸念されるため、最小の価格を見つける必要があり、それは大きな数に初期化する必要があるため、それは0に初期化されます。
コードは以下の通りであります:
在这里插入代码片
def maxProfit(self,prices:List[int]):
max_profit = 0
min_price = float("inf")
for price in prices:
max_profit = max(max_profit,price-min_price)
min_price = min(price,min_price)
return max_profit