LeetCode 376 擺動序列 貪心演算法

2021-10-11 22:19:50 字數 1129 閱讀 2012

貪心演算法

在求解問題時,每一步都做出在當前看來是最優的選擇,從而得到乙個整體的可能最優解。

題目分析

題目要求的擺動序列的本質即為:在乙個單調(遞增或者下降)區間上,只保留兩頭的節點,去掉中間節點。

①.該上公升時就直接上公升到當前能公升的最高點;

②.該下降時就直接下降到當前能降的最低點。

**示例

class

solution

if( j == size )

break

;//找到底也沒找到

preflag = nums[j]

> nums[i]?1

:0;//1 上公升 0 下降

result++

;//找到了個數+1

i = j;

j++;}

else

if( preflag ==1)

// 1 表示前一段上公升,本次找下降的點

if( j == size )

break

;//找到底也沒找到

//此時 j 是下降的

while

( j+

1< size && nums[j+1]

< nums[j]

)//降到底

preflag =0;

result++

; i = j;

j++;}

else

if( preflag ==0)

// 0 表示前一段下降,本次找上公升的點

if( j == size )

break

;//找到底也沒找到

//此時 j 是上公升的

while

( j+

1< size && nums[j+1]

> nums[j]

)//公升到頂

leetcode376擺動序列

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

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 不是擺動序...