8.15 - hard - 46

239. Sliding Window Maximum

利用deque,在deque里維護(hù)一個不遞增序列就可以了

class Solution(object):
    def maxSlidingWindow(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: List[int]
        """
        if not nums:
            return []
        if len(nums) <= k:
            return [max(nums)]
        deque = collections.deque()
        # init
        for i in range(k):
            while deque and nums[i] > deque[-1]:
                deque.pop()
            deque.append(nums[i])
        
        res = [deque[0]]
        
        for i in range(k, len(nums)):
            # add one
            while deque and nums[i] > deque[-1]:
                deque.pop()
            deque.append(nums[i])
            # remove one
            if nums[i-k] == deque[0]:
                deque.popleft()
            res.append(deque[0])
        return res
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這節(jié)課主要講heap,stack和deque的運(yùn)用。heap主要是保持順序上,每次取出一個元素還可以保持剩下元素的...
    健時總向亂中忙閱讀 261評論 0 0
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員),僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 18,393評論 2 36
  • 計算機(jī)網(wǎng)絡(luò)第五版第一章,第五章,第六章的習(xí)題解答。編號是按照中文版圖書來的,題目是復(fù)制的英文版圖書。答案經(jīng)過本人驗...
    C就要畢業(yè)了閱讀 34,633評論 3 9
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,927評論 0 33
  • 所謂單調(diào)隊列——即元素具有單調(diào)性且同時保持著隊列性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。這個數(shù)據(jù)結(jié)構(gòu)使用頻率不是很高,筆者在之前也沒有接觸...
    123起來嗨閱讀 887評論 1 3

友情鏈接更多精彩內(nèi)容