滑動視窗問題

2021-08-02 18:32:55 字數 792 閱讀 1553

題目:

有乙個整型陣列 arr 和乙個大小為 w 的視窗從陣列的最左邊滑到最右邊,視窗每次向右邊滑乙個位置。 返回乙個長度為n-w+1的陣列res,res[i]表示每一種視窗狀態下的最大值。 以陣列為[4,3,5,4,3,3,6,7],w=3為例。因為第乙個視窗[4,3,5]的最大值為5,第二個視窗[3,5,4]的最大值為5,第三個視窗[5,4,3]的最大值為5。第四個視窗[4,3,3]的最大值為4。第五個視窗[3,3,6]的最大值為6。第六個視窗[3,6,7]的最大值為7。所以最終返回[5,5,5,4,6,7]。

給定整形陣列arr及它的大小n,同時給定w,請返回res陣列。保證w小於等於n,同時保證陣列大小小於等於500

public int slide(int arr, int n, int w)

if(w==1)

int see=w-1;

linkedlistlist = new linkedlist();// 雙端佇列

for (int i = 0; i < arr.length; i++) else

if (i >= see)

}else

break;

}} // while

if (list == null || list.size() == 0)

}if (i >= see) }}

} // for

int result=new int[array.size()];

int k=0;

for(integer i:array)

return result;

}

滑動視窗問題

judge 題意 給定乙個長度為n n 10 6 的陣列。有乙個大小為k的滑動視窗從陣列的最左端移動到最右端。求滑動視窗在每個位置時的最大值和最小值。總時間限制 12000ms 可以使用單調佇列來做這道題。include include using namespace std define mode...

滑動視窗問題

雙指標,在左右兩個邊界處分別設有指標,一般可用於陣列和字串的應用,且優點遍歷次數較少。用雙指標來限定視窗的範圍,每一次對與指標進行滑動,來對於視窗裡的資料結合判斷。給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母...

力扣 滑動視窗問題

1.76.最小覆蓋子串,兩個map,滑動視窗,left移動條件是匹配計數 s1的map.size 2.567.字串的排列,看似和上個類似,但是移動條件,很神奇 3.424.替換後的最長重複字元,這個挺難的,將問題轉換為視窗內除了出現次數最多的字元外,其他的字元出現次數不能多於k,這個就是left縮小...