題目: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 解釋 滑動視窗的位置...