mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
@ -138,20 +138,16 @@ class Solution {
|
||||
```
|
||||
|
||||
Python:
|
||||
```python
|
||||
```python3
|
||||
class Solution:
|
||||
def wiggleMaxLength(self, nums: List[int]) -> int:
|
||||
#贪心 求波峰数量 + 波谷数量
|
||||
if len(nums)<=1:
|
||||
return len(nums)
|
||||
cur, pre = 0,0 #当前一对差值,前一对差值
|
||||
count = 1#默认最右边有一个峰值
|
||||
for i in range(len(nums)-1):
|
||||
cur = nums[i+1] - nums[i]
|
||||
if((cur>0 and pre<=0) or (cur<0 and pre>=0)):
|
||||
count += 1
|
||||
pre = cur
|
||||
return count
|
||||
preC,curC,res = 0,0,1 #题目里nums长度大于等于1,当长度为1时,其实到不了for循环里去,所以不用考虑nums长度
|
||||
for i in range(len(nums) - 1):
|
||||
curC = nums[i + 1] - nums[i]
|
||||
if curC * preC <= 0 and curC !=0: #差值为0时,不算摆动
|
||||
res += 1
|
||||
preC = curC #如果当前差值和上一个差值为一正一负时,才需要用当前差值替代上一个差值
|
||||
return res
|
||||
```
|
||||
|
||||
Go:
|
||||
|
Reference in New Issue
Block a user