日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构 - 单调栈、单调队列

發(fā)布時(shí)間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构 - 单调栈、单调队列 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

單調(diào)棧:每日溫度

  • 請(qǐng)根據(jù)每日 氣溫 列表 temperatures ,請(qǐng)計(jì)算在每一天需要等幾天才會(huì)有更高的溫度。如果氣溫在這之后都不會(huì)升高,請(qǐng)?jiān)谠撐恢糜?0 來代替
  • 單調(diào)?;局惶幚鞱GE問題(Next GreaterElement)。對(duì)序列中每個(gè)元素,找到下一個(gè)比它大的元素。(“下一個(gè)”可以換成“上一個(gè)”,“大”也可以換成“小”)
class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""length = len(temperatures)res = [0 for _ in range(length)]stack = [] # 維護(hù)一個(gè)單調(diào)棧,其中的值是單調(diào)遞減的for i in range(length):t = temperatures[i]while (len(stack) > 0 and temperatures[stack[-1]] < t):res[stack[-1]] = i - stack[-1]stack.pop()stack.append(i)return res

單調(diào)隊(duì)列:滑動(dòng)窗口的最大值

  • 給定一個(gè)數(shù)組 nums 和滑動(dòng)窗口的大小 k,請(qǐng)找出所有滑動(dòng)窗口里的最大值(典型用法)

  • 詳細(xì)參考

""" 用一個(gè)queue(滑動(dòng)窗口,先入先出)和一個(gè)deque實(shí)現(xiàn) queue負(fù)責(zé)push和pop,deque用來存放最大值 1. 如果新的value大于deque尾端的值,那么deque一直進(jìn)行pop_back操作,直到尾端的值大于等于value 或者為空,再將value壓入deque的尾部 2. 每次取max_value,返回deque首部的值 3. 當(dāng)que進(jìn)行pop操作時(shí),如果que首部的值等于deque首部的值,那么deque同樣需要進(jìn)行pop_front操作 """ class Solution(object):def maxSlidingWindow(self, nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""desc_q = [] # 單調(diào)遞減隊(duì)列# 初始化for i in range(k):while (desc_q and desc_q[-1] < nums[i]):desc_q.pop()desc_q.append(nums[i])res = [desc_q[0]]for i in range(k, length):in_num = nums[i] # 加入窗口的數(shù)字out_num = nums[i - k] # 退出窗口的數(shù)字if out_num == desc_q[0]: # 如果在單調(diào)隊(duì)列首部則同步退出desc_q.pop(0)while (desc_q and desc_q[-1] < in_num):desc_q.pop()desc_q.append(in_num)res.append(desc_q[0])return res

總結(jié)

以上是生活随笔為你收集整理的数据结构 - 单调栈、单调队列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。