| 1234567891011121314151617181920212223 | 
							- func wiggleMaxLength(nums []int) int {
 
- 	n := len(nums)
 
- 	if n <= 1 {
 
- 		return n
 
- 	}
 
- 	i, max, pre := 1, 1, 0
 
- 	for ; i < n; i++ { // Find the first slope
 
- 		diff := nums[i] - nums[i-1]
 
- 		if diff != 0 {
 
- 			pre = diff
 
- 			max++
 
- 			break
 
- 		}
 
- 	}
 
- 	for i = i + 1; i < n; i++ { // Count the change of dir
 
- 		diff := nums[i] - nums[i-1]
 
- 		if pre*diff < 0 {
 
- 			pre = diff
 
- 			max++
 
- 		}
 
- 	}
 
- 	return max
 
- }
 
 
  |