| 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}
 |