跟着专注于计算机视觉的AndyJ的妈妈我学算法之每日一题leetcode739每日温度

好了,开始每日一题
每日温度,lc 739题。
简单但又很难。。。
看到这种问题,嗯,没思路。
下面是题目

请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。

例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。

提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/daily-temperatures
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:
看到这种题,先思考,别慌,思考出来出不来,先想想,尽量用简单的方法。
任何算法题都一样,别慌,别用第一感觉的思路,除非做过原题,多想想。大不了不会,大不了摆地摊。

道理说完了,开始默写:

class Solution(object):
   def dailyTemperatures(self, T):
   		if not T:return []
   		res = [0 for _ in range(len(T))]
   		stack = []
   		for i, temp in enumerate(T):
   			if stack:
   				while stack and T[stack[-1]]<temp:
   					res[stack[-1]]=i-stack[-1]
   					stack.pop()
   			stack.append(i)
   		return res

提交。

好了,今天的每日一题的AndyJ的爸爸就到这里了。

你可能感兴趣的:(跟着专注于计算机视觉的AndyJ的妈妈我学算法之每日一题leetcode739每日温度)