劍指 面試題59 1 滑動視窗的最大值

2021-10-05 03:09:41 字數 816 閱讀 4342

題目

給定乙個陣列 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....