給定乙個陣列和滑動視窗的大小,請找出所有滑動視窗裡的最大值。
public
class 滑動視窗的最大值
if(num.length < size || size <1)
// 用來儲存可能是滑動視窗最大值的數字的下標
linkedlist
indexdeque =
newlinkedlist
<
>()
;for
(int i =
0; i < size -
1; i++
)return list;
}public
static arraylist
maxinwindows2
(int
num,
int size)
if(num == null)
if(num.length < size || size <1)
deque
idx =
newlinkedlist
<
>()
;// 視窗還沒有填滿的時候,找最大的索引
for(
int i =
0; i < size && i < num.length; i++
)// 新增索引
idx.
addlast
(i);
// 在隊尾新增索引
}// 當視窗被填滿了時候
for(
int i = size; i < data.
size()
; i++
)// 刪除已經滑出 視窗的資料對應的下標
while
(!idx.
isempty()
&& idx.
getfirst()
<=
(i - size)
)
idx.
addlast
(i);
}return list;
}public
static
void
main
(string[
] args)
; system.out.
println
(maxinwindows2
(nums,3)
);}}
滑動視窗最大值
題目描述 給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為 針對陣列的滑動視窗有以下6個 幾個注意點 利用雙端佇列實現,如果後者比前者大,前者丟擲,後者進,如果比前者小,壓入佇列,判斷隊頭是否過期,這就需...
滑動視窗最大值
給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大...
滑動視窗最大值
給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k個數字。滑動視窗每次只向右移動一位。思路一 我自己的思路就是很暴力,利用乙個鍊錶來表示滑動視窗,通過入隊和出隊來控制大小和向後移動。同時編寫乙個函式用來求煉表中數的最大值。class ...