劍指offer59題 滑動視窗的最大值

2021-10-23 20:05:19 字數 668 閱讀 4425

給定乙個陣列 nums 和滑動視窗的大小 k,請找出所有滑動視窗裡的最大值。

示例:輸入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 輸出: [3,3,5,5,6,7]

1.遍歷每個視窗最大值,存入陣列

class

solution

res.

push_back

(temp)

; left++

; right++;}

return res;}}

;

2.利用deque維護每次視窗滑動後的最大值,將前乙個視窗小於新進視窗的從前與後分別pop,每次留下最大的就是第乙個元素。

class

solution;if

(k==1)

return nums;

deque<

int>dq;

vector<

int>res;

int i=

1-k;

//這時視窗還沒形成

int j=0;

while

(jsize()

)return res;}}

;

劍指Offer59 滑動視窗的最大值

1.維護乙個單調不嚴格遞減佇列deque o n 遍歷起始位置o n 對於每個視窗只需o 1 獲得最大值,空間o k deque最多存當前視窗內的所有元素 當當前視窗內元素不嚴格單減的時候 class solution 陣列為空,或視窗過大或過小 vector int res 存每個視窗的最大值 d...

劍指offer59題(對稱的二叉樹)

題目 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 根據前序遍歷 根 左 右 和對稱的前序遍歷 根 右 左 即可判斷。只要左子樹的左結點和右子樹的右結點,左子樹的右節點和右子樹的左結點相等,就是對稱的。public class t...

劍指offer 滑動視窗問題

給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為 針對陣列的滑動視窗有以下6個 本人思路 每次滑動,總是減去乙個值,新增乙個值 如果新增值大於上乙個視窗的最大值,那麼新增值為本視窗的最大值 否則,如果上乙...