IT评测·应用市场-qidao123.com

标题: <代码随想录> 算法训练营-2024.12.30 [打印本页]

作者: 用户国营    时间: 2024-12-31 21:17
标题: <代码随想录> 算法训练营-2024.12.30
今日专题:单调栈
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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4