-
Notifications
You must be signed in to change notification settings - Fork 0
/
376.py
39 lines (38 loc) · 1.06 KB
/
376.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Solution(object):
def compare(self, arr):
if arr[-2]<arr[-1]:
return -1
else:
return 1 # 3 1
def wiggleMaxLength(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
ans=[]
if len(nums)==0 or len(nums)==1:
return len(nums)
ans.append(nums[0])
j=1
while j<len(nums):
if nums[j]!=nums[0]:
ans.append(nums[j])
break
j+=1
if len(ans)==1:
return len(ans)
flag=self.compare(ans)
for i in range(j, len(nums), 1):
if flag==1 and ans[-1]<nums[i]:
ans.append(nums[i])
flag=-1
elif flag==1 and ans[-1]>nums[i]:
ans[-1]=nums[i]
elif flag==-1 and ans[-1]<nums[i]:
ans[-1]=nums[i]
elif flag==-1 and ans[-1]>nums[i]:
ans.append(nums[i])
flag=1
return len(ans)
nums = [3,3,3,2,5]
print(Solution().wiggleMaxLength(nums))