mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Update 0376.摆动序列.md
增加python动态规划优化版
This commit is contained in:
@ -264,6 +264,25 @@ class Solution:
|
|||||||
return max(dp[-1][0], dp[-1][1])
|
return max(dp[-1][0], dp[-1][1])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
class Solution:
|
||||||
|
def wiggleMaxLength(self, nums: List[int]) -> int:
|
||||||
|
# up i作为波峰最长的序列长度
|
||||||
|
# down i作为波谷最长的序列长度
|
||||||
|
n = len(nums)
|
||||||
|
# 长度为0和1的直接返回长度
|
||||||
|
if n<2: return n
|
||||||
|
for i in range(1,n):
|
||||||
|
if nums[i]>nums[i-1]:
|
||||||
|
# nums[i] 为波峰,1. 前面是波峰,up值不变,2. 前面是波谷,down值加1
|
||||||
|
# 目前up值取两者的较大值(其实down+1即可,可以推理前一步down和up最多相差1,所以down+1>=up)
|
||||||
|
up = max(up, down+1)
|
||||||
|
elif nums[i]<nums[i-1]:
|
||||||
|
# nums[i] 为波谷,1. 前面是波峰,up+1,2. 前面是波谷,down不变,取较大值
|
||||||
|
down = max(down, up+1)
|
||||||
|
return max(up, down)
|
||||||
|
```
|
||||||
|
|
||||||
### Go
|
### Go
|
||||||
|
|
||||||
**贪心**
|
**贪心**
|
||||||
|
Reference in New Issue
Block a user