739 每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
def dailyTemperatures(temperatures):answer=[0]*len(temperatures)stack=[]for i in range(len(temperatures)):while len(stack>0 and temperatures[i]>tempeeratures[stack[-1]]):answer[stack[-1]]=i-stack[-1]stack.pop()stack.append(i)return answer
496 下一个更大元素I
nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。
给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。
对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的答案是 -1 。
返回一个长度为 nums1.length 的数组 ans 作为答案,满足 ans[i] 是如上所述的 下一个更大元素 。
def nextGreaterElement(nums1,nums2):stack=[]ans=[-1]*len(nums1)for i in range(len(nums)):while len(stack)>0 and nums2[i]>numss2[stack[-1]]:if nums2[stack[-1]] in nums1:index=nums1.index(nums2[stack[-1]])anx[index]=nums2[i]stack.pop()stack.append(i)return ans