滑動視窗的最大值(C )

2021-10-04 18:08:53 字數 433 閱讀 5182

題目:

給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為; 針對陣列的滑動視窗有以下6個: , , , , , 。

思路:使用雙向佇列,儲存當前佇列中的最大值位置,如果新滑入的值大於當前佇列尾部的元素,則彈出佇列尾部所有小於新值的元素,並把新滑入的值推入佇列尾部;並判斷佇列頭部儲存的最大值的位置是否還在滑窗內,如果不在,則彈出該值;此時佇列頭部的值即為當前視窗最大值

**實現:

class solution 

for(int i = size; i < len; i++)

result.push_back(num[max_idx.front()]);

}return result;

}};

c 滑動視窗最大值

暴力的時間複雜度是o nk vector int comp vector int v vector int maxinwindows vector int num,unsigned int size 此時獲取視窗中的最大值的複雜度為o k 那麼如何將o k 的複雜度變為o 1 是我們該考慮的地方。我...

滑動視窗最大值

題目描述 給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為 針對陣列的滑動視窗有以下6個 幾個注意點 利用雙端佇列實現,如果後者比前者大,前者丟擲,後者進,如果比前者小,壓入佇列,判斷隊頭是否過期,這就需...

滑動視窗最大值

給定乙個陣列和滑動視窗的大小,請找出所有滑動視窗裡的最大值。public class 滑動視窗的最大值 if num.length size size 1 用來儲存可能是滑動視窗最大值的數字的下標 linkedlist indexdeque newlinkedlist for int i 0 i s...