<代码随想录> 算法训练营-2024.12.30

打印 上一主题 下一主题

主题 989|帖子 989|积分 2967

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今日专题:单调栈
739. 每日温度

  1. class Solution:
  2.     def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
  3.         #单调栈
  4.         size=len(temperatures)
  5.         st=[]
  6.         res=[0]*size
  7.         for i in range(len(temperatures)-1,-1,-1):
  8.             while len(st)>0 and temperatures[i]>=temperatures[st[-1]]:
  9.                 st.pop()
  10.             if len(st)>0:
  11.                 res[i]=st[-1]-i
  12.             st.append(i)
  13.         return res
  14.         
复制代码
496. 下一个更大元素 I

  1. class Solution:
  2.     def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
  3.         # 1.在nums2中找到nums1[i]的位置j
  4.         # 2. 找到j后面的第一个更大元素
  5.         #直接先维护出nums2中每个元素的后一个元素
  6.         st=[]
  7.         dict={}
  8.         size=len(nums2)
  9.         for i,n in enumerate(reversed(nums2)):
  10.             while len(st)>0 and n>=st[-1]:
  11.                 st.pop()
  12.             if len(st)>0:
  13.                 dict[n]=st[-1]
  14.             else:
  15.                 dict[n]=-1
  16.             st.append(n)
  17.         res=[]
  18.         for n in nums1:
  19.             res.append(dict[n])
  20.         return res
复制代码
503. 下一个更大元素 II

  1. class Solution:
  2.     def nextGreaterElements(self, nums: List[int]) -> List[int]:
  3.         #拷贝一个数组拼到原数组后面
  4.         size=len(nums)
  5.         nums=nums+nums[::]
  6.         st=[]
  7.         res=[-1]*size
  8.         for i in range(len(nums)-1,-1,-1):
  9.             while len(st)>0 and nums[i]>=st[-1]:
  10.                 st.pop()
  11.             if len(st)>0 and i<size:
  12.                 res[i]=st[-1]
  13.             st.append(nums[i])
  14.         return res
  15.            
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表