mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Merge pull request #353 from z80160280/z80160280-patch-2
Update 0121.买卖股票的最佳时机.md
This commit is contained in:
@ -244,6 +244,47 @@ class Solution { // 动态规划解法
|
||||
|
||||
Python:
|
||||
|
||||
> 贪心法:
|
||||
```python
|
||||
class Solution:
|
||||
def maxProfit(self, prices: List[int]) -> int:
|
||||
low = float("inf")
|
||||
result = 0
|
||||
for i in range(len(prices)):
|
||||
low = min(low, prices[i]) #取最左最小价格
|
||||
result = max(result, prices[i] - low) #直接取最大区间利润
|
||||
return result
|
||||
```
|
||||
|
||||
> 动态规划:版本一
|
||||
```python
|
||||
class Solution:
|
||||
def maxProfit(self, prices: List[int]) -> int:
|
||||
length = len(prices)
|
||||
if len == 0:
|
||||
return 0
|
||||
dp = [[0] * 2 for _ in range(length)]
|
||||
dp[0][0] = -prices[0]
|
||||
dp[0][1] = 0
|
||||
for i in range(1, length):
|
||||
dp[i][0] = max(dp[i-1][0], -prices[i])
|
||||
dp[i][1] = max(dp[i-1][1], prices[i] + dp[i-1][0])
|
||||
return dp[-1][1]
|
||||
```
|
||||
|
||||
> 动态规划:版本二
|
||||
```python
|
||||
class Solution:
|
||||
def maxProfit(self, prices: List[int]) -> int:
|
||||
length = len(prices)
|
||||
dp = [[0] * 2 for _ in range(2)] #注意这里只开辟了一个2 * 2大小的二维数组
|
||||
dp[0][0] = -prices[0]
|
||||
dp[0][1] = 0
|
||||
for i in range(1, length):
|
||||
dp[i % 2][0] = max(dp[(i-1) % 2][0], -prices[i])
|
||||
dp[i % 2][1] = max(dp[(i-1) % 2][1], prices[i] + dp[(i-1) % 2][0])
|
||||
return dp[(length-1) % 2][1]
|
||||
```
|
||||
|
||||
Go:
|
||||
```Go
|
||||
|
Reference in New Issue
Block a user