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

面试算法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:每日温度

题目 输入一个数组&#xff0c;它的每个数字是某天的温度。请计算每天需要等几天才会出现更高的温度。例如&#xff0c;如果输入数组[35&#xff0c;31&#xff0c;33&#xff0c;36&#xff0c;34]&#xff0c;那么输出为[3&#xff0c;1&#xff0c;1&#xff0c;0&#xff…...

流程控制语句中的顺序结构、分支结构和循环结构以及示例和详细代码解释为什么这样写(1)

在流程控制语句中&#xff0c;我们通常可以将其分为三种基本结构&#xff1a;顺序结构、分支结构和循环结构。 1. 顺序结构&#xff1a;顺序结构是最简单的流程控制结构&#xff0c;代码按照编写的顺序依次执行&#xff0c;没有条件或循环的干扰。下面是一个顺序结构的示例代码…...

MFC Windows 程序设计[334]之自定义编辑框(附源码)

MFC Windows 程序设计[334]之自定义编辑框 程序之美前言主体运行效果核心代码逻辑分析结束语程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Wind…...

MOS管特性及其几种常用驱动电路详解,电子工程师手把手教你

在电子工程中&#xff0c;MOS管&#xff08;金属氧化物半导体场效应管&#xff09;是一种非常重要的半导体元件。 在这篇文章中&#xff0c;我们将深入探讨MOS管的特性&#xff0c;以及几种常用的驱动电路的工作原理和设计方法。无论你是初学者还是经验丰富的电子工程师&#…...

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&#xff1a;用于将一个类标记为 Spring MVC 控制器&#xff0c;处理 HTTP 请求和生成 HTTP 响应。RestController&#xff1a;类似于 Controller&#xff0c;但返回的数据会被自动转换为 JSON 或 XML 格式&#xff0c;通常用于构建 RESTful API。等于Controller Re…...

winodos下使用VS2022编译eclipse-paho.mqtt.c并演示简单使用的 demo

本文演示C语言如何使用eclipse-paho.mqtt.c库&#xff0c;包含自行编译库的步骤或者下载编译好的文件。 1.下载paho.mqtt.c库源码&#xff08;zip 文件&#xff09; 到官网选择C版本的paho源码进行下载 Eclipse Paho | The Eclipse Foundation 或者到下述连接下载 Releases ec…...

【Java 进阶篇】使用 Java 和 Jsoup 进行 XML 处理

XML&#xff08;可扩展标记语言&#xff09;是一种常用的数据交换格式&#xff0c;它被广泛用于在不同系统之间传递和存储数据。Java作为一种强大的编程语言&#xff0c;提供了多种方式来处理XML数据。其中&#xff0c;Jsoup 是一个流行的Java库&#xff0c;用于解析和操作XML文…...

QT图形视图框架绘制曲线图和Smith图

QT图形视图框架绘制曲线图和Smith图 QGraphicsView是Qt框架中的一个图形视图部件&#xff0c;用于显示和处理2D图形元素。它提供了强大的工具来创建交互式和自定义的图形应用程序。在绘制折线图和Smith图时&#xff0c;使用QGraphicsView有以下一些优点&#xff1a; 交互性&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 可获得的最大点数(中等题)

【题目描述】 几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#xff0c;最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数…...

2024年天津中德应用技术大学专升本物流管理专业课考试大纲

天津中德应用技术大学物流管理专业&#xff08;高职升本科&#xff09;2024年专业基础考试大纲 一、试卷类型 物流管理专业升本专业课考试共1套试卷&#xff0c;总分200分&#xff0c;考试时间为2小时。内容包含仓储与配送管理40%、物流基础30%&#xff0c;运输管理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. 补充&#xff1a;MySQL数据结构的合…...

Qt Widget 删除之后还会显示 问题

目录 问题描述&#xff1a;Qt QWidget 删除之后还会显示 解决方案&#xff1a; Part1: 使用 deleteLater Part2: 使用 setParent(nullptr) 父控件为空 还有一种不常用的方法 隐藏&#xff1a; 问题描述&#xff1a;Qt QWidget 删除之后还会显示 Qt 无论使用 while (Layo…...

关系型数据库的问题和NoSQL数据库的应用

1.关系型数据库的问题 系统使用通用的商用关系型数据库&#xff0c;系统内部数据采用中央集中方式存储。系统投入使用后&#xff0c;初期用户数量少&#xff0c;系统运行平稳。一段时间后&#xff0c;用户数出现了爆炸式增长&#xff0c;系统暴露出诸多问题&#xff0c;集中表…...

二进制安装k8s

192.168.11.12 master01 192.168.11.12 y4 node01 192.168.11.14 y5 node02 192.168.11.15 对环境进行初始化&#xff0c;主机192.168.11.12、主机y4、主机y5&#xff0c;三台主机都要做以下操作&#xff0c;唯一不同的就是修改主…...

超简洁ubuntu linux 安装 cp2k

文章目录 打开下载网址解压接下来的步骤讲解 将解压的包移到对应路径下最后运行 打开下载网址 需要从github下载&#xff1a;下载网址 两个都可以从windows下先下载&#xff0c;再复制到linux中&#xff0c; 如果不能复制&#xff0c;右键这两个&#xff0c;复制链接&#xf…...

判断日期区间或季节等

使用JavaScript的Date对象来获取当前日期&#xff0c;并通过比较判断是否在指定的日期范围内&#xff08;如3月16日-9月15日&#xff09;。以下是一个示例代码&#xff1a; var currentDate new Date(); // 获取当前日期 var startRange new Date(currentDate.getFullYear()…...

入门人工智能 —— 学习数据持久化、使用 Python 将数据保存到mysql(7)

入门人工智能 —— 学习数据持久化、使用 Python 将数据保存到mysql 什么是数据持久化&#xff1f;使用 Python 进行数据持久化步骤 1: 安装 MySQL步骤 2: 安装必要的 Python 库步骤 3: 连接到 MySQL 数据库步骤 4: 创建数据表步骤 5: 插入数据步骤 6: 查询数据步骤 7: 关闭连接…...

Redis知识点完整补充文档

再学习该文档的时候先学习Redis内容 https://blog.csdn.net/MC_sir/article/details/159394860?spm1001.2014.3001.5502https://blog.csdn.net/MC_sir/article/details/159394860?spm1001.2014.3001.5502 一、基础定义与存储结构&#xff08;补充&#xff09; 1. 五大数据结…...

FireRedASR-AED-L模型调优实战:针对特定领域词汇的识别率提升

FireRedASR-AED-L模型调优实战&#xff1a;针对特定领域词汇的识别率提升 1. 引言 你有没有遇到过这种情况&#xff1f;用语音转文字工具处理一段专业讨论&#xff0c;比如数据库课程设计的汇报&#xff0c;结果发现“范式”、“事务”、“索引”这些词&#xff0c;要么被识别…...

5分钟掌握终极资源下载神器:res-downloader跨平台智能嗅探工具

5分钟掌握终极资源下载神器&#xff1a;res-downloader跨平台智能嗅探工具 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://git…...

告别fdisk!用parted命令轻松管理4TB以上大硬盘(附实战案例)

告别fdisk&#xff01;用parted命令轻松管理4TB以上大硬盘&#xff08;附实战案例&#xff09; 当你的NAS存储阵列需要扩容到8TB&#xff0c;或是数据库服务器要配置12TB的RAID组时&#xff0c;传统的fdisk工具会在第一个指令就给你泼冷水——它根本不认识超过2TB的磁盘空间。这…...

QwQ-32B在自然语言处理中的实战应用

QwQ-32B在自然语言处理中的实战应用 1. 引言&#xff1a;当NLP遇上推理专家 自然语言处理&#xff08;NLP&#xff09;领域最近迎来了一位强力选手——QwQ-32B。这不是普通的语言模型&#xff0c;而是一个专门为推理和思考设计的模型。想象一下&#xff0c;你有一个不仅能理解…...

飞书文档转Markdown效率低下?Cloud Document Converter实现2分钟精准转换提升75%工作效率

飞书文档转Markdown效率低下&#xff1f;Cloud Document Converter实现2分钟精准转换提升75%工作效率 【免费下载链接】cloud-document-converter Convert Lark Doc to Markdown 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-document-converter 在企业文档管理场…...

3个高效技巧让ThreeFingersDragOnWindows实现Windows触控板革命

3个高效技巧让ThreeFingersDragOnWindows实现Windows触控板革命 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnWi…...

SMART-AM40玩转轻量桌面:Armbian下xfce4从安装到远程控制的完整指南

SMART-AM40轻量化桌面革命&#xff1a;Armbian系统下xfce4环境全流程部署与远程控制实战 在单板计算机领域&#xff0c;SMART-AM40凭借其Rockchip处理器和出色的能效比&#xff0c;正成为轻量化桌面解决方案的新宠。本文将带您完成从Armbian系统基础配置到xfce4桌面环境部署&am…...

PCB开窗技术:设计要点与工程应用解析

PCB开窗技术详解&#xff1a;设计要点与工程应用1. PCB开窗基础概念1.1 开窗的定义与物理特性PCB开窗是指去除印刷电路板导线表面阻焊油墨层的工艺处理&#xff0c;使底层铜箔直接暴露。在标准PCB制造流程中&#xff0c;所有信号走线默认覆盖阻焊层&#xff08;Solder Mask&…...

Token省着用:GLM-4.7-Flash优化OpenClaw长任务执行策略

Token省着用&#xff1a;GLM-4.7-Flash优化OpenClaw长任务执行策略 1. 当Token消耗成为自动化拦路虎 上周我让OpenClaw帮我整理半年的技术文档&#xff0c;结果第二天收到账单时差点从椅子上摔下来——一次自动化任务竟然烧掉了近20万Token。这个数字让我意识到&#xff0c;如…...