leetcode376擺動序列

2021-08-28 14:29:55 字數 1041 閱讀 3510

def wigglemaxlength_two(nums):

'''up[j]表示當前元素較上乙個元素是公升序狀態,所以要找到與公升序狀態之前最近的逆序的狀態的長度down[j-1],到i時當前序列的最長的擺動陣列的長度

down[j]表示當前元素較上乙個元素是逆序的長度,到i時當前序列的最長的擺動陣列的長度

空間複雜度是o(n2)

'''n = len(nums)

up = [1 for i in range(n)]

down = [1 for i in range(n)]

for j in range(1,n):

if nums[j-1] < nums[j]:

up[j] = down[j-1] + 1

down[j] = down[j-1]

elif nums[j-1] > nums[j]:

down[j] = up[j-1] +1

up[j] = up[j-1]

else:

down[j] = down[j - 1]

up[j] = up[j - 1]

print(down,up)

return max(down[-1],up[-1])

def wigglemaxlength(nums):

'''空間複雜度o(1)

'''if len(nums) < 2:

return len(nums)

state = 'begin'

max_length = 1

for i in range(1, len(nums)):

if nums[i] > nums[i - 1] and state != 'up':

max_length += 1

state = 'up'

elif nums[i] < nums[i - 1] and state != 'down':

max_length += 1

state = 'down'

return max_length

Leetcode 376 擺動序列

如果連續數字之間的差嚴格地在正數和負數之間交替,則數字序列稱為擺動序列。第乙個差 如果存在的話 可能是正數或負數。少於兩個元素的序列也是擺動序列。例如,1,7,4,9,2,5 是乙個擺動序列,因為差值 6,3,5,7,3 是正負交替出現的。相反,1,4,7,2,5 和 1,7,4,5,5 不是擺動序...

leetcode376擺動序列

如果連續數字之間的差嚴格地在正數和負數之間交替,則數字序列稱為擺動序列。第乙個差 如果存在的話 可能是正數或負數。少於兩個元素的序列也是擺動序列。例如,1,7,4,9,2,5 是乙個擺動序列,因為差值 6,3,5,7,3 是正負交替出現的。相反,1,4,7,2,5 和 1,7,4,5,5 不是擺動序...

Leetcode 376 擺動序列

如果連續數字之間的差嚴格地在正數和負數之間交替,則數字序列稱為擺動序列。第乙個差 如果存在的話 可能是正數或負數。少於兩個元素的序列也是擺動序列。例如,1,7,4,9,2,5 是乙個擺動序列,因為差值 6,3,5,7,3 是正負交替出現的。相反,1,4,7,2,5 和 1,7,4,5,5 不是擺動序...