• 739. Daily Temperatures && 单调栈 && Python collections deque


    题目大意

    给你接下来每一天的气温,求出对于每一天的气温,下一次出现比它高气温的日期距现在要等多少天

    解题思路

    利用单调栈,维护一个单调递减的栈

    将每一天的下标i入栈,维护一个温度递减的下标

    若下一个温度p,比栈顶元素对应的温度p'要高,就出栈,且p就是p'的最近的“高温”

    代码实现

     1 from collections import deque
     2 class Solution:
     3     def dailyTemperatures(self, temperatures):
     4         ans = [0]*len(temperatures)
     5         stack = deque()
     6         for i in range(len(temperatures)):
     7             if len(stack) == 0:
     8                 stack.append(i)
     9             else:
    10                 while temperatures[i] > temperatures[stack[len(stack)-1]]:
    11                     pos = stack.pop()
    12                     ans[pos] = i - pos
    13                     if len(stack) == 0:
    14                         break
    15                 stack.append(i)
    16         return ans
    17                 
    View Code
  • 相关阅读:
    bugku web基础$_POST
    bugku web基础$_GET
    bugku 计算器
    bugku web2
    i春秋Musee de X
    i春秋Hello World
    i春秋登录
    i春秋Blog
    i春秋时间
    i春秋Hash
  • 原文地址:https://www.cnblogs.com/liwenchi/p/8387864.html
Copyright © 2020-2023  润新知