当前位置: 首页 > backend >正文

python-leetcode 71.每日温度

题目:

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。


可以理解为对于数组中的每一个元素,找到下一个比它大的元素的位置,并计算他们的距离,如果不存在这样的元素,则距离为0

1.初始化:

stack:用于存储温度的索引

answer:初始化为全0的数组

2.遍历:

对于每个温度temp和其索引i:

        如果栈不为空且temp大于栈顶索引对应的温度:

                弹出栈顶索引j,并设置answer[j]=[i-j]

        将当前索引i压入栈中。

3.返回结果1

class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""stack=[]answer=[0]*len(temperatures)for i ,temp in enumerate(temperatures):  #遍历温度列表,i是当前日期索引,temp是当前温度值while stack and temp>temperatures[stack[-1]]:  #当栈不为空且当前温度高于栈顶日期对应的温度时,进入循环j=stack.pop() #弹出栈顶元素j(即找到了比temperatures[j]更高的温度)answer[j]=i-j#当前索引i减去之前日期索引jstack.append(i)return answer

时间复杂度:O(n)

空间复杂度:O(n)

http://www.xdnf.cn/news/7774.html

相关文章:

  • Vue 3.0中核心的Composition API
  • 打造一个支持MySQL查询的MCP同步插件:Java实现
  • PCB智能报价系统——————仙盟创梦IDE
  • Python实例题:PyOt实现简易浏览器
  • leetcode字符串篇【公共前缀】:14-最长公共前缀
  • C语言-9.指针
  • “交互式“ PDF 与“静态“ PDF 表单的区别
  • liinux系统安装Helm
  • 系统数据对接-从获取到处理的全流程
  • PH热榜 | 2025-05-20
  • Ubuntu24.04安装Dify
  • YOLO中model.predict方法返回内容Results详解
  • 智能笔记助手-NotepadAI使用指南
  • 【大模型面试每日一题】Day 24:假设训练资源有限,如何在模型参数量、训练数据量和训练时长三者间做权衡?
  • MySQL之数据库基础知识,库和表的操作以及基础数据类型
  • Paillier加密方案的原理、实现与应用(dev)
  • Cribl 使用Function 的实际例子-02
  • MinerU可视化界面程序部署(Windows环境)
  • HarmonyOS5云服务技术分享--退出登录文档问题
  • Jenkins安装和配置
  • 无人机精准降落与避障模块技术解析
  • ZYNQ Cache一致性问题解析与实战:从原理到创新优化
  • SAGE:基于SAM进行二级蒸馏的多模态图像融合新方法,CVPR2025
  • 测试概念
  • 嵌入式项目之交叉编译m2440篇
  • 基于望获操作系统的具身智能人形机器人典型应用案例
  • CompleteableFuture的异步任务编排
  • python读写bin文件
  • 《算法笔记》11.7小节——动态规划专题->背包问题 问题 C: 货币系统
  • SCAU18923--二叉树的直径