劍指offer 滑動視窗的最大值

2021-09-29 18:51:07 字數 800 閱讀 7221

時間限制:1秒空間限制:32768k

本題知識點:陣列

題目描述

給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為; 針對陣列的滑動視窗有以下6個: , , , , , 。

思路分析

定義兩個變數,乙個指向滑動視窗的頭,乙個指向滑動視窗尾,然後迴圈,如果滑動視窗的尾元素和最大值在同乙個視窗,則誰大誰就是最大值,如果不在了,重新迴圈尋找最大值

c#語言

public

int[

]maxinwindows

(int

num,

int size)

;int

maxnums =

newint

[num.length - size +1]

;int left =

0, right = size -

1, index =

0, maxnumindex =-1

;while

(right < num.length)

else

maxnums[index++

]= num[maxnumindex]

;++left;

++right;

}return maxnums;

}

劍指offer 滑動視窗最大值

很多題解都是用雙端佇列,但是既然是區間最值得問題,那麼可以用st表 唯一注意的是引數陣列的大小一定要大於視窗的大小,不然沒意義,即 中的len size的時候退出 果然還是引數的合法性一定要考慮,尤其是提示段錯誤的時候,而自己在本地測試沒問題,一般都是引數合法性的問題!一開始就是漏了這個條件,一直提...

劍指offer 滑動視窗的最大值

題目描述 給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們 的最大值分別為 針對陣列的滑動視窗有以下6個 思路描述 掃瞄給定的陣列,用乙個大小為size的堆維護,將這次的元素加入堆中,找出其中的最大值 然後利用firs...

劍指offer 滑動視窗的最大值

題目 劍指offer 滑動視窗的最大值 暴力列舉視窗。class solution ret.push back max return ret 這個思路也是參考了網上的方法,非常的巧妙。對於,設計乙個que.它的功能是儲存滑動視窗可能的最大值,整個視窗按降序進行排列。隊頭的最大值是當前滑動視窗的最大值...