栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python代码实现 栈 力扣leetcode 第739 每日温度

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python代码实现 栈 力扣leetcode 第739 每日温度

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

示例 1:

输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

题目来源:力扣(LeetCode)
题目链接:https://leetcode.cn/problems/daily-temperatures

实现思路:使用栈,如果栈为空当前温度idx入栈,如果不为空,比较栈顶数据对应的温度是否小于当前温度,如果当前温度大,则满足条件栈顶内容出栈,出栈值与当前温度idx值相减即为出栈idx对应温度的返回值。并继续比较新的栈顶对应温度与当前温度,直到当前温度小于栈顶对应温度,并将当前温度idx入栈。

class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        sta=[]
        ret=[0]*len(temperatures)
        i=0
        for t in temperatures: 
            while len(sta)>0 and i >0:
                if t >temperatures[sta[-1]]:
                    n=sta.pop()
                    ret[n]=i-n
                else:
                    break
            sta.append(i)
            i+=1
        return ret

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号