題目思路給定乙個陣列 nums 和滑動視窗的大小 k,請找出所有滑動視窗裡的最大值。
設定雙端佇列存放可能成為最大值的數字對應的下標:
c++
class
solution
return res;}}
;
python
class
solution
:def
maxslidingwindow
(self, nums: list[
int]
, k:
int)
-> list[
int]
: deque, res =
,[]for i in
range
(len
(nums)):
while deque and nums[i]
>nums[deque[-1
]]:#只存有可能成為最大值的數字的index進deque
deque.pop(
)while i-deque[0]
> k-1:
# 超過視窗長度
deque.pop(0)
if i>=k-1:
# 從i>滑動視窗的大小開始,每一次都新新增乙個最大值0]
])return res
劍指offer 面試題59 1 滑動視窗的最大值
給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為 針對陣列的滑動視窗有以下6個 掃瞄每個滑動視窗的所有數字並找出其中的最大值。如果滑動視窗的大小為k,則需要o k 時間找到最大值。對於長度為 n 的輸入陣...
劍指offer 59 1 滑動視窗的最大值
給定乙個陣列 nums 和滑動視窗的大小 k,請找出所有滑動視窗裡的最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大值 1 3 1 3 5 3 6 7 3 1 3 1 3 5 3 6 7 3 1 3 1 3 5 3 6...
劍指offer 面試題65 滑動視窗的最大值
題目 給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為 針對陣列的滑動視窗有以下6個 我的 class solution index index每次在 i 的基礎上,加個size 1 maxnumvec....