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

代码随想录算法训练营四十八天|739.每日温度、496.下一个更大元素 I、503.下一个更大元素II

题目链接:739. 每日温度 - 力扣(LeetCode)

class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""answer = [0] * len(temperatures)stack = [0]for i in range(1, len(temperatures)):if temperatures[i] <= temperatures[stack[-1]]:stack.append(i)else:while len(stack) != 0 and temperatures[i] > temperatures[stack[-1]]:answer[stack[-1]] = i - stack[-1]stack.pop()stack.append(i)return answer

题目链接:496. 下一个更大元素 I - 力扣(LeetCode)

class Solution(object):def nextGreaterElement(self, nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: List[int]"""from collections import defaultdicthelpDict = defaultdict(int)helpStack = [0]for i in range(1, len(nums2)):if nums2[i] <= nums2[helpStack[-1]]:helpStack.append(i)else:while len(helpStack) != 0 and nums2[helpStack[-1]] < nums2[i]:helpDict[nums2[helpStack[-1]]] = nums2[i]helpStack.pop()helpStack.append(i)answer = [-1] * len(nums1)for i in range(len(nums1)):if helpDict[nums1[i]] != 0:answer[i] = helpDict[nums1[i]]return answer

题目链接:503. 下一个更大元素 II - 力扣(LeetCode)

class Solution(object):def nextGreaterElements(self, nums):""":type nums: List[int]:rtype: List[int]"""dp = [-1] * len(nums)stack = []for i in range(len(nums) * 2):while(len(stack) != 0 and nums[i % len(nums)] > nums[stack[-1]]):dp[stack[-1]] = nums[i%len(nums)]stack.pop()stack.append(i%len(nums))return dp


http://www.mrgr.cn/news/18341.html

相关文章:

  • 计算机网络之体系结构
  • 解释头结点、第一个结点(或称首元结点)、头指针这三个概念的定义及其区别
  • 12_Linux时间处理操作
  • Datawhale X 李宏毅苹果书 AI夏令营 Task3打卡
  • 一文读懂PINGPONG:0成本在普通家用机上运行多个网络节点
  • 数据结构代码集训day14(适合考研、自学、期末和专升本)
  • 一文介绍NVMe和NVMe-of
  • 将语义分割的标签转换为实例分割(yolo)的标签
  • ARM基础知识---CPU---处理器
  • 职场必备公式(一)
  • Python精选200Tips:11-20
  • 基于HybridCLR做的一个FlyBird Demo
  • 206. 反转链表
  • ecmascript和javascript的区别
  • 揭秘面试官常见问题 —— JavaScript 闭包
  • 力扣9.2
  • ClickHouse
  • Matlab三维图的坐标轴标签 自动平行坐标/自动旋转
  • Mybatis【分页插件,缓存,一级缓存,二级缓存,常见缓存面试题】
  • HCIE认证要学多久?3个方面决定HCIE学习时长