給你乙個整數陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。
返回滑動視窗中的最大值。
示例 1:
輸入:nums =[1
,3,-
1,-3
,5,3
,6,7
], k =
3輸出:[3,
3,5,
5,6,
7]解釋:滑動視窗的位置 最大值
----
----
-------
-----[
13-1
]-35
3673
1[3-
1-3]
5367
313[
-1-3
5]36
7513
-1[-
353]
6751
3-1-
3[53
6]76
13-1
-35[
367]
7示例 2:
輸入:nums =[1
], k =
1輸出:[1]
示例 3:
輸入:nums =[1
,-1]
, k =
1輸出:[1,
-1]示例 4:
輸入:nums =[9
,11], k =
2輸出:[11]
示例 5:
輸入:nums =[4
,-2]
, k =
2輸出:[4]
1<= nums.length <=
105-
104<= nums[i]
<=
1041
<= k <= nums.length
通過次數120
,865提交次數244
,149
方法一:直接法
class
solution;}
for(
int i=
0;i1;i++)}
res.
push_back
(maxnum);}
return res;}}
;
方法二:借助優先佇列法
class
solution
vector<
int>res=
;for
(int j=k;j++j)
res.
push_back
(myq.
top(
).first);}
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 解釋 滑動視窗的位置...