贪心算法_摆动序列

'示例 1:
'输入: [1,7,4,9,2,5]
'输出: 6
'解释: 整个序列均为摆动序列
'示例 2:
'输入: [1,17,5,10,13,15,10,5,16,8]
'输出: 7
'解释: 这个序列包含几个长度为 7 摆动序列,其中一个可为[1,17,10,13,10,16,8]。
'示例 3:
'输入: [1,2,3,4,5,6,7,8,9]
'输出: 2

Sub 贪心算法_摆动序列()
    nums1 = Array(1, 7, 4, 9, 2, 5)
    nums2 = Array(1, 17, 5, 10, 13, 15, 10, 5, 16, 8)
    nums3 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
    res = wiggleMaxLength(nums3)
    Debug.Print (res)
End Sub

Public Function wiggleMaxLength(nums)
    If UBound(nums) <= 1 Then wiggleMaxLength = UBound(nums): Exit Function
    curdiff = 0
    prediff = 0
    count = 1
    For i = 1 To UBound(nums)
        curdiff = nums(i) - nums(i - 1)
        If (curdiff > 0 And prediff <= 0) Or (curdiff < 0 And prediff >= 0) Then
            count = count + 1
            prediff = curdiff
        End If
    Next
    wiggleMaxLength = count
End Function

 

posted @ 2022-12-10 11:05  依云科技  阅读(33)  评论(0)    收藏  举报