腾讯面试:滑动窗口最大值
生活随笔
收集整理的這篇文章主要介紹了
腾讯面试:滑动窗口最大值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?題目:
????給定一個數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。
????返回滑動窗口中的最大值。
- 示例:
輸入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
輸出: [3,3,5,5,6,7] - 解釋:
?????滑動窗口的位置 ????????????最大值
[1 ??3 ??-1] ??-3 ??5 ??3 ??6 ??7 ????????3
1 ??[3 ??-1 ??-3] ??5 ??3 ??6 ??7 ????????3
1 ??3 ??[-1 ??-3 ??5] ??3 ??6 ??7 ????????5
1 ??3 ??-1 ??[-3 ??5 ??3] ??6 ??7 ????????5
1 ??3 ??-1 ??-3 ??[5 ??3 ??6] ??7 ????????6
1 ??3 ??-1 ??-3 ??5 ??[3 ??6 ??7] ????????7
提示:
- 1 <= nums.length <= 10^5
- -10^4 <= nums[i] <= 10^4
- 1 <= k <= nums.length
雙端隊列:隊首總是最大值,新的頭總是隊列的最大數,在O(1)時間里取出最大數
沒遍歷到一個數,拿這個數和雙端隊列尾部的數進行比較,如果這個數比隊尾的數大,將這個數彈出;如果比隊尾小,將這個數放在隊尾。
?
代碼地址:https://blog.csdn.net/sinat_15723179/article/details/82183985
總結
以上是生活随笔為你收集整理的腾讯面试:滑动窗口最大值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员笑话二十八
- 下一篇: 链表经典题:K个一组翻转链表