239 滑動視窗最大值

2021-10-19 13:48:58 字數 1473 閱讀 6739

題目:239. 滑動視窗最大值

給你乙個整數陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。

返回滑動視窗中的最大值。

示例 1:

輸入:nums = [1,3,-1,-3,5,3,6,7], k = 3

輸出:[3,3,5,5,6,7]

解釋:滑動視窗的位置 最大值

解題:

/**

* @author mj

* @date 2021/2/19

*/public

class

z239maxslidingwindow

// 定義視窗指標

int left =

0, right =0;

int[

] res =

newint

[nums.length - k +1]

;int index =0;

linkedlist

list =

newlinkedlist

<

>()

;while

(right < nums.length)

// 不斷新增

list.

addlast

(nums[right]);

right ++

;// 構造視窗完成,這時候需要根據條件做一些操作

if(right >= k)}}

return res;

}public

static

void

main

(string[

] args)

;int k =3;

int[

] result =

maxslidingwindow

(nums, k)

; system.out.

println

(arrays.

tostring

(result));

// 輸出:[3,3,5,5,6,7]}/*

滑動視窗演算法的**框架:

非固定大小的滑動視窗,偽碼框架:

string s, t;

// 在 s 中尋找 t 的「最小覆蓋子串」

int left = 0, right = 0;

string res = s;

while(right < s.size())

}return res;

固定大小的滑動視窗,偽碼框架:

// 固定視窗大小為 k

string s;

// 在 s 中尋找視窗大小為 k 時的所包含最大母音字母個數

int right = 0;

while(right < s.size())

}return res;

*/}

239 滑動視窗最大值

給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大...

239 滑動視窗最大值

239.滑動視窗最大值 solution deque solution maxindex 暴力法的時間複雜度為 o n k 弊端為每次掃瞄視窗的最大值,每兩次掃瞄之間都會存在重複的值比較,已經知道了他們的最大值是誰了,所以要減少比較次數 為什麼新增的是索引 將i加到隊尾 deque.addlast ...

239 滑動視窗最大值

給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。高階 示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置...