【代码随想录】刷题记录(108)-逐日温度

打印 上一主题 下一主题

主题 984|帖子 984|积分 2954

题目描述:
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer 是指对于第 i 天,下一个更高温度出现在几天后。假如气温在这之后都不会升高,请在该位置用 0 来代替。
 
示例 1:
  1. <strong>输入:</strong> temperatures = [73,74,75,71,69,72,76,73]
  2. <strong>输出:</strong> [1,1,4,2,1,1,0,0]
复制代码
示例 2:
  1. <strong>输入:</strong> temperatures = [30,40,50,60]
  2. <strong>输出:</strong> [1,1,1,0]
复制代码
示例 3:
  1. <strong>输入:</strong> temperatures = [30,60,90]
  2. <strong>输出: </strong>[1,1,0]
复制代码
 
提示:


  • 1 <= temperatures.length <= 105
  • 30 <= temperatures <= 100
 
我的作答:
生病了,写代码写得好烦好烦好烦。。
  1. class Solution(object):
  2.     def dailyTemperatures(self, temperatures):
  3.         """
  4.         :type temperatures: List[int]
  5.         :rtype: List[int]
  6.         """
  7.         stack = []  # 用于存储尚未找到更高温度的索引
  8.         result = [0] * len(temperatures)  # 初始化结果数组,所有元素初始值为0
  9.         for i in range(len(temperatures)):
  10.             # 当前温度大于栈顶索引对应的温度时,更新结果并弹出栈顶索引
  11.             while stack and temperatures[i] > temperatures[stack[-1]]:
  12.                 prev_index = stack.pop()
  13.                 result[prev_index] = i - prev_index  # 计算等待天数
  14.             # 将当前索引压入栈
  15.             stack.append(i)
  16.         return result
复制代码

 
参考:
  1. class Solution(object):
  2.     def dailyTemperatures(self, temperatures):
  3.         """
  4.         :type temperatures: List[int]
  5.         :rtype: List[int]
  6.         """
  7.         answer = [0]*len(temperatures)
  8.         stack = [0]
  9.         for i in range(1,len(temperatures)):
  10.             # 情况一和情况二
  11.             if temperatures[i]<=temperatures[stack[-1]]:
  12.                 stack.append(i)
  13.             # 情况三
  14.             else:
  15.                 while len(stack) != 0 and temperatures[i]>temperatures[stack[-1]]:
  16.                     answer[stack[-1]]=i-stack[-1]
  17.                     stack.pop()
  18.                 stack.append(i)
  19.         return answer
复制代码

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

祗疼妳一个

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