diff --git a/problems/0376.摆动序列.md b/problems/0376.摆动序列.md index bbca5ea0..4d283eb0 100644 --- a/problems/0376.摆动序列.md +++ b/problems/0376.摆动序列.md @@ -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: