面试算法38:每日温度
题目
输入一个数组,它的每个数字是某天的温度。请计算每天需要等几天才会出现更高的温度。例如,如果输入数组[35,31,33,36,34],那么输出为[3,1,1,0,0]。由于第1天的温度是35℃,要等3天才会出现更高的温度36℃,因此对应的输出为3。第4天的温度是36℃,后面没有更高的温度,它对应的输出是0。其他的以此类推。
分析
用一个栈保存每天的温度在数组中的下标。每次从数组中读取一个温度,然后将其与栈中保存的温度(根据下标可以得到温度)进行比较。如果当前温度比位于栈顶的温度高,那么就能知道位于栈顶那一天需要等待几天才会出现更高的温度。然后出栈1次,将当前温度与下一个位于栈顶的温度进行比较。如果栈中已经没有比当前温度低的温度,则将当前温度在数组中的下标入栈。

解
public class Test {public static void main(String[] args) {int[] tokens = {35, 31, 33, 36, 34};int[] result = dailyTemperatures(tokens);for (int res : result) {System.out.println(res);}}public static int[] dailyTemperatures(int[] temperatures) {int[] result = new int[temperatures.length];Stack<Integer> stack = new Stack<>();for (int i = 0; i < temperatures.length; i++) {while (!stack.empty() && temperatures[i] > temperatures[stack.peek()]) {int prev = stack.pop();result[prev] = i - prev;}stack.push(i);}return result;}
}
相关文章:
面试算法38:每日温度
题目 输入一个数组,它的每个数字是某天的温度。请计算每天需要等几天才会出现更高的温度。例如,如果输入数组[35,31,33,36,34],那么输出为[3,1,1,0ÿ…...
流程控制语句中的顺序结构、分支结构和循环结构以及示例和详细代码解释为什么这样写(1)
在流程控制语句中,我们通常可以将其分为三种基本结构:顺序结构、分支结构和循环结构。 1. 顺序结构:顺序结构是最简单的流程控制结构,代码按照编写的顺序依次执行,没有条件或循环的干扰。下面是一个顺序结构的示例代码…...
MFC Windows 程序设计[334]之自定义编辑框(附源码)
MFC Windows 程序设计[334]之自定义编辑框 程序之美前言主体运行效果核心代码逻辑分析结束语程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Wind…...
MOS管特性及其几种常用驱动电路详解,电子工程师手把手教你
在电子工程中,MOS管(金属氧化物半导体场效应管)是一种非常重要的半导体元件。 在这篇文章中,我们将深入探讨MOS管的特性,以及几种常用的驱动电路的工作原理和设计方法。无论你是初学者还是经验丰富的电子工程师&#…...
C#,数值计算——分类与推理Phylo_wpgma的计算方法与源程序
1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Phylo_wpgma : Phylagglom { public override void premin(double[,] d, int[] nextp) { } public override double dminfn(double…...
Spring MVC 常用的注解
Controller:用于将一个类标记为 Spring MVC 控制器,处理 HTTP 请求和生成 HTTP 响应。RestController:类似于 Controller,但返回的数据会被自动转换为 JSON 或 XML 格式,通常用于构建 RESTful API。等于Controller Re…...
winodos下使用VS2022编译eclipse-paho.mqtt.c并演示简单使用的 demo
本文演示C语言如何使用eclipse-paho.mqtt.c库,包含自行编译库的步骤或者下载编译好的文件。 1.下载paho.mqtt.c库源码(zip 文件) 到官网选择C版本的paho源码进行下载 Eclipse Paho | The Eclipse Foundation 或者到下述连接下载 Releases ec…...
【Java 进阶篇】使用 Java 和 Jsoup 进行 XML 处理
XML(可扩展标记语言)是一种常用的数据交换格式,它被广泛用于在不同系统之间传递和存储数据。Java作为一种强大的编程语言,提供了多种方式来处理XML数据。其中,Jsoup 是一个流行的Java库,用于解析和操作XML文…...
QT图形视图框架绘制曲线图和Smith图
QT图形视图框架绘制曲线图和Smith图 QGraphicsView是Qt框架中的一个图形视图部件,用于显示和处理2D图形元素。它提供了强大的工具来创建交互式和自定义的图形应用程序。在绘制折线图和Smith图时,使用QGraphicsView有以下一些优点: 交互性&am…...
0032【Edabit ★☆☆☆☆☆】【每秒帧数】Frames Per Second
0032【Edabit ★☆☆☆☆☆】【每秒帧数】Frames Per Second algorithms language_fundamentals math numbers Instructions Create a function that returns the number of frames shown in a given number of minutes for a certain FPS. Examples frames(1, 1) // 60 fra…...
【LeetCode】1423 可获得的最大点数(中等题)
【题目描述】 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数…...
2024年天津中德应用技术大学专升本物流管理专业课考试大纲
天津中德应用技术大学物流管理专业(高职升本科)2024年专业基础考试大纲 一、试卷类型 物流管理专业升本专业课考试共1套试卷,总分200分,考试时间为2小时。内容包含仓储与配送管理40%、物流基础30%,运输管理30%&#…...
目标检测YOLO实战应用案例100讲-船舶目标检测及编队识别(续)
目录 3.2.3 分类与回归 3.2.4 网络预设置与训练策略 3.3 实验与分析 3.3.1 实验环境 3.3.2...
【MySQL索引与优化篇】索引的数据结构
文章目录 1. 概述2. 常见索引结构2.1 聚簇索引2.2 二级索引(辅助索引、非聚簇索引)2.3 联合索引 3. InnoDB的B树索引的注意事项3.1 根页面位置万年不动3.2 内节点中目录项记录的唯一性 4. MyISAM中的索引方案5. InnoDB和MyISAM对比6. 小结7. 补充:MySQL数据结构的合…...
Qt Widget 删除之后还会显示 问题
目录 问题描述:Qt QWidget 删除之后还会显示 解决方案: Part1: 使用 deleteLater Part2: 使用 setParent(nullptr) 父控件为空 还有一种不常用的方法 隐藏: 问题描述:Qt QWidget 删除之后还会显示 Qt 无论使用 while (Layo…...
关系型数据库的问题和NoSQL数据库的应用
1.关系型数据库的问题 系统使用通用的商用关系型数据库,系统内部数据采用中央集中方式存储。系统投入使用后,初期用户数量少,系统运行平稳。一段时间后,用户数出现了爆炸式增长,系统暴露出诸多问题,集中表…...
二进制安装k8s
192.168.11.12 master01 192.168.11.12 y4 node01 192.168.11.14 y5 node02 192.168.11.15 对环境进行初始化,主机192.168.11.12、主机y4、主机y5,三台主机都要做以下操作,唯一不同的就是修改主…...
超简洁ubuntu linux 安装 cp2k
文章目录 打开下载网址解压接下来的步骤讲解 将解压的包移到对应路径下最后运行 打开下载网址 需要从github下载:下载网址 两个都可以从windows下先下载,再复制到linux中, 如果不能复制,右键这两个,复制链接…...
判断日期区间或季节等
使用JavaScript的Date对象来获取当前日期,并通过比较判断是否在指定的日期范围内(如3月16日-9月15日)。以下是一个示例代码: var currentDate new Date(); // 获取当前日期 var startRange new Date(currentDate.getFullYear()…...
入门人工智能 —— 学习数据持久化、使用 Python 将数据保存到mysql(7)
入门人工智能 —— 学习数据持久化、使用 Python 将数据保存到mysql 什么是数据持久化?使用 Python 进行数据持久化步骤 1: 安装 MySQL步骤 2: 安装必要的 Python 库步骤 3: 连接到 MySQL 数据库步骤 4: 创建数据表步骤 5: 插入数据步骤 6: 查询数据步骤 7: 关闭连接…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
