劍指offer 滑動視窗的最大值,C 實現

2022-07-16 14:54:12 字數 866 閱讀 1758

# 題目

# 思路

利用c++中的雙端佇列儲存有可能是滑動視窗最大值的下標,其中隊首元素儲存當前視窗最大值的下標。當滑動視窗改變時,更新佇列。佇列更新的規則:(1)新元素依次與隊尾元素比較,如果隊尾元素小於新元素,則刪除隊尾元素,直至佇列中沒有小於新元素的值。(2)更新隊首元素,如果隊首元素不在新滑動視窗中,則刪除隊首元素。(3)把每次滑動的數字的下標壓入佇列

找出陣列中大小為3的滑動視窗的最大值,在佇列中的下標一列,小括號前面的數字表示數字在陣列中的下標。

# **

1 #include 2 #include 3 #include 4

using

namespace std;56

class solution

30return res;

31 }

32 };

33int main()

34 ;

3738 solution solution;

39 solution.maxinwindows(num,size);

40return 0;

41 }

42

view code

# 複雜度

o(n)

# 測試用例

劍指offer 滑動視窗最大值

很多題解都是用雙端佇列,但是既然是區間最值得問題,那麼可以用st表 唯一注意的是引數陣列的大小一定要大於視窗的大小,不然沒意義,即 中的len size的時候退出 果然還是引數的合法性一定要考慮,尤其是提示段錯誤的時候,而自己在本地測試沒問題,一般都是引數合法性的問題!一開始就是漏了這個條件,一直提...

劍指offer 滑動視窗的最大值

題目描述 給定乙個陣列和滑動視窗的大小,找出所有滑動視窗裡數值的最大值。例如,如果輸入陣列及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們 的最大值分別為 針對陣列的滑動視窗有以下6個 思路描述 掃瞄給定的陣列,用乙個大小為size的堆維護,將這次的元素加入堆中,找出其中的最大值 然後利用firs...

劍指offer 滑動視窗的最大值

題目 劍指offer 滑動視窗的最大值 暴力列舉視窗。class solution ret.push back max return ret 這個思路也是參考了網上的方法,非常的巧妙。對於,設計乙個que.它的功能是儲存滑動視窗可能的最大值,整個視窗按降序進行排列。隊頭的最大值是當前滑動視窗的最大值...