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

day58每日温度_下一个更大元素1

力扣739.每日温度

题目链接:https://leetcode.cn/problems/daily-temperatures/

思路

什么时候用单调栈呢?

通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。

定义一个单调栈,维护的是一个从栈顶到栈底不递减的序列。注意栈里放的是下标,判断大小时只要取出对应的数组元素即可。

有三种情况:

(1)遍历元素小于栈顶元素,此时是符合栈顶到栈底不递减的规律的,将遍历元素压入栈中;

(2)遍历元素等于栈顶元素,此时是符合栈顶到栈底不递减的规律的,将遍历元素压入栈中;

(3)重点来了:遍历元素小于栈顶元素,不符合规律了,此时用res数组记录两个下标的差值(就是第一个比自身温度高的天数了),再弹出栈顶元素,将遍历元素压入栈中。

这里只需要手动模拟一下就可以理解了。

完整代码

class Solution {public int[] dailyTemperatures(int[] temperatures) {int[] res = new int[temperatures.length];Deque<Integer> stack = new LinkedList<>();stack.push(0);for (int i = 1; i < temperatures.length; i++) {if(temperatures[i] < temperatures[stack.peek()]){stack.push(i);}else if(temperatures[i] == temperatures[stack.peek()]){stack.push(i);}else{while(!stack.isEmpty() && temperatures[i] > temperatures[stack.peek()]){res[stack.peek()] = i-stack.peek();stack.pop();}stack.push(i);}}return res;}
}

力扣496.下一个更大元素1

题目链接:https://leetcode.cn/problems/next-greater-element-i/

思路

因为数组里的元素各不相同,所以用hashmap来存放元素,更容易查找。

此时栈里存放的是nums2的下标。

更多细节,需要手动模拟一下比较清楚。特别是找到遍历元素大于栈顶元素的那一段。

完整代码

class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {int[] res = new int[nums1.length];Arrays.fill(res,-1);HashMap<Integer,Integer> hashmap = new HashMap<>();for (int i = 0; i < nums1.length; i++) {hashmap.put(nums1[i],i);}Deque<Integer> stack = new LinkedList<>();stack.push(0);for (int i = 1; i < nums2.length; i++) {if(nums2[i] <= nums2[stack.peek()]){stack.push(i);}else{while (!stack.isEmpty() && nums2[i] > nums2[stack.peek()]){if(hashmap.containsKey(nums2[stack.peek()])){int index = hashmap.get(nums2[stack.peek()]);res[index] = nums2[i];}stack.pop();}stack.push(i);}}return res;}
}

相关文章:

day58每日温度_下一个更大元素1

力扣739.每日温度 题目链接&#xff1a;https://leetcode.cn/problems/daily-temperatures/ 思路 什么时候用单调栈呢&#xff1f; 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置&#xff0c;此时我们就要想到可以用单调栈了…...

超清遥感影像语义分割处理

分割出城市中的垃圾堆场,遂寻找到了 UrbanAtlas 2012 database 这个数据集和对应的 baseline baseline IoU for class 1: 0.5667 IoU for class 2: 0.3504 IoU for class 3: 0.0001 IoU for class 4: 0.0002 IoU for class 5: 0.4121 IoU for class 6: 0.0204 IoU for cla…...

RabbitMQ安装及配置

目录1.下载和安装1.1 下载1.2. 安装1.3 测试1.4 卸载管理界面2.1 添加用户2.2 创建Virtual Hosts2.3. 设置权限1.下载和安装 1.1 下载 1.下载Erlang的rpm包 RabbitMQ是Erlang语言编写&#xff0c;所以Erang环境必须要有&#xff0c;注&#xff1a;Erlang环境一定要与RabbitMQ…...

网络协议(四):网络互联模型、物理层、数据链路层

网络协议系列文章 网络协议(一)&#xff1a;基本概念、计算机之间的连接方式 网络协议(二)&#xff1a;MAC地址、IP地址、子网掩码、子网和超网 网络协议(三)&#xff1a;路由器原理及数据包传输过程 网络协议(四)&#xff1a;网络互联模型、物理层、数据链路层 目录一、网…...

请问有没有关于数据预测的方法?

利用数据对未来进行预测分析&#xff0c;虽然不能百分百的准确预测&#xff0c;但是有数据理论支撑的趋势预测是客观可靠的。当数据分析的目的涉及未来决策时&#xff0c;就可以大胆使用预测的思路和方法&#xff0c;如企业明年的战略计划、销售计划等&#xff0c;这对企业而言…...

[CVPR 2021] Your “Flamingo“ is My “Bird“: Fine-Grained, or Not

Contents Your "Flamingo" is My "Bird"MethodCooperation or Confrontation?Disentanglement and ReinforcementExperimentDiscussionsReferencesYour “Flamingo” is My “Bird” 对于如下图片,FGVC 的目标是让模型识别出 “flamingo”,但对于大部分…...

clickHouse笔记

1、介绍 clickHouse将数据进行分成多个partition&#xff0c;多个CUP进行进行单条的Query&#xff0c;不适合qps特别高的查询场景&#xff1b;适应场景&#xff1a;处理过的&#xff0c;字段特别大的宽表&#xff0c;进行统计&#xff0c;查询&#xff0c;聚合等数据分析场景 …...

10.jQuery中请求预处理 $.ajaxPrefilter()

在使用jQuery发起请求的时候($.get(),$.post().$ajax()都可以)会默认在请求前调用$.ajaxPrefilter()这个函数&#xff0c;我们可以利用这个来做一些事情 目录 1 定义API根路径 2 添加请求头 3 添加请求结束的回调函数 1 定义API根路径 这样后面每次请求就不用再写根路…...

【黄啊码】浅谈PHP入门|如何学习PHP

大家好&#xff0c;我是黄啊码&#xff0c;很多小白问我&#xff0c;怎么入门PHP&#xff0c;甚至连PHP能干嘛都不知道&#xff0c;今天啊码就具体来讲讲。 什么是PHP PHP是一种开源的通用脚本语言&#xff0c;用于创建动态网页和应用程序。它可以运行在服务器端&#xff0c;…...

人大金仓数据库的归档日志

归档日志 归档日志是非活动的WAL日志备份。通过使用归档日志&#xff0c;可以保留所有WAL日志的历史记录&#xff0c;当数据库处于ARCHIVELOG模式并进行日志切换时&#xff0c;后台进程archiver process会将WAL日志的内容保存到归档日志中&#xff0c;当数据库出现介质失败时&…...

C++:类和对象(上)

文章目录1 面向过程与面向对象的初步认识2 类的引入3 类的定义4 类的访问限定符及封装4.1 访问限定符4.2 封装5 类的实例化6 类对象模型6.1 如何计算类的大小6.2 类对象的存储方式猜测7 this指针7.1 this指针的引出7.2 this指针的特性8 C语言和C栈&#xff08;Stack&#xff09…...

数据库 与 数据仓库的本质区别是什么?

当用计算机来处理数据的时候, 数据就需要存储和管理了。早期的数据, 就是用一个文件来实现的, 即是文件系统。随着处理的数据量增大, 发展到用数据库来管理和存储数据了。 数据库包括多媒体数据库、对象关系数据库和关系数据库。关系数据库管理系统,已经成为了事实上通用的数据…...

数据库实践LAB大纲 05 JDBC 连接

概述 Java DataBase Connectivity&#xff0c;Java 数据库连接 执行SQL的Java API 为多种关系型数据提供统一访问 FUNCTION 建立与数据库的连接向数据库发送 SQL 语句处理从数据库返回的结果 四种常见JDBC驱动程序 JDBC-ODBC Bridge drivernative-API, partly Java driver…...

Linux部署nuxt3

最近写了一个项目&#xff0c;需要打包部署&#xff0c;过程还是比较繁琐的&#xff0c;因为需要先配置运行环境。准备采用 pm2 管理项目运行&#xff0c;需要在服务器安装 pm2&#xff0c;而安装 pm2 的话用 npm 命令最方便&#xff0c;所以还要下载 node 环境。那么&#xff…...

鸟哥的Linux私房菜读书笔记:文件系统的简单操作

磁盘与目录的容量 现在我们知道磁盘的整体数据实在superblock区块中,但是每个个别文件的容量则在inode当中记载的. 那在命令行下面该如何显示处这几个数据呢? df:列出文件系统的整体磁盘书用量du:评估文件系统的磁盘使用量(常用在推估目录所占容量)df先来说明一下范例一所输…...

论如何用python自动下载爱的妹子视频~嘿嘿嘿~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 现在好看的妹子真的太多啦~ 如何一次性把这些好看的视频全保存下来捏&#xff1f; 开发环境: 版 本: python 3.8 编辑器: pycharm 2022.3.2 专业版 requests >>> pip install request…...

传奇GOM引擎配置PAK密码补丁教程

因为我很少接触GOM引擎&#xff0c;所有很晚才知道PAK密码的事情&#xff0c;以前经常在群里或者QQ上有人问站长&#xff0c;说补丁有PAK密码怎么办&#xff0c;我起初不在意&#xff0c;限制发现是一个大问题&#xff0c;好吧&#xff0c;今天借助这篇文章&#xff0c;分享一下…...

邀您参赛!DCIC 2023「科技金融欺诈风险识别」算法赛正在报名中

近年来&#xff0c;跨境赌博、电信网络诈骗、黑产等外部欺诈违法犯罪形势日益严峻&#xff0c;呈现线上化、产业化、团伙化等特征&#xff0c;国家、监管机构及银行自身都高度重视反欺诈治理工作&#xff0c;坚决守护人民群众的财产安全。 为进一步打击外部欺诈违法犯罪行为&am…...

ElasticSearch-学习笔记04【Java客户端操作索引库】

Java后端-学习路线-笔记汇总表【黑马程序员】ElasticSearch-学习笔记01【ElasticSearch基本介绍】【day01】ElasticSearch-学习笔记02【ElasticSearch索引库维护】ElasticSearch-学习笔记03【ElasticSearch集群】ElasticSearch-学习笔记04【Java客户端操作索引库】【day02】Ela…...

低代码开发平台|制造管理-工艺工序搭建指南

1、简介1.1、案例简介本文将介绍&#xff0c;如何搭建制造管理-工艺工序。1.2、应用场景先填充工序信息&#xff0c;再设置工艺路线对应的工序&#xff1b;工序信息及工艺路线列表报表展示的是所有工序、工艺路线信息&#xff0c;可进行新增对应数据的操作。2、设置方法2.1、表…...

终端工作空间新选择:从 tmux 到 Zellij 的迁移与实战

1. 为什么需要从 tmux 迁移到 Zellij 作为一个用了五年 tmux 的老用户&#xff0c;我最初对 Zellij 这个"新玩具"是持怀疑态度的。直到有一次在远程服务器上调试时&#xff0c;tmux 的窗格突然卡死&#xff0c;所有工作进度瞬间归零&#xff0c;我才开始认真寻找替代…...

CSS如何实现固定页脚布局_利用calc计算高度差

最可靠的页脚固定方案是Flexbox&#xff1a;外层容器设min-height: 100vh和display: flex、flex-direction: column&#xff0c;main加flex: 1&#xff0c;footer保持自然高度&#xff0c;并重置body { margin: 0 }。页脚卡在底部但内容少时被顶上去这是 position: fixed 最常见…...

Diablo Edit2终极指南:如何轻松编辑暗黑破坏神2角色存档

Diablo Edit2终极指南&#xff1a;如何轻松编辑暗黑破坏神2角色存档 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 暗黑破坏神2作为经典的动作角色扮演游戏&#xff0c;拥有庞大的玩家群体。然而…...

DroidCam OBS插件终极指南:3分钟将手机变身高清直播摄像头

DroidCam OBS插件终极指南&#xff1a;3分钟将手机变身高清直播摄像头 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin DroidCam OBS插件是一款免费开源工具&#xff0c;它能让你的智能手机…...

HsMod:重新定义炉石传说游戏体验的终极模改插件

HsMod&#xff1a;重新定义炉石传说游戏体验的终极模改插件 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 炉石传说玩家们&#xff0c;你是否厌倦了漫长的动画等待&#xff1f;是否想要更…...

Android自动化测试代理droidrun-agent:原理、实现与工程实践

1. 项目概述&#xff1a;一个面向Android应用的自动化测试代理在移动应用开发与测试领域&#xff0c;自动化测试是保障应用质量、提升迭代效率的核心环节。对于Android平台&#xff0c;虽然官方提供了Espresso、UI Automator等成熟的测试框架&#xff0c;但在面对复杂业务场景、…...

Spring Boot安全脚手架实战:快速集成认证授权与API防护

1. 项目概述&#xff1a;一个面向开发者的安全脚手架如果你是一名后端或全栈开发者&#xff0c;最近在启动一个新项目时&#xff0c;是不是总感觉有些“重复劳动”&#xff1f;比如&#xff0c;每次都要手动集成用户认证、权限管理、API安全防护、日志审计这些基础但至关重要的…...

Adobe-GenP激活工具:5分钟解锁Adobe创意套件全功能

Adobe-GenP激活工具&#xff1a;5分钟解锁Adobe创意套件全功能 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP是一款专为Adobe Creative Cloud用户设计的…...

【DeepSeek MATH竞赛测试权威复盘】:20年AI评测专家独家拆解7大能力断层与提分临界点

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek MATH竞赛测试的评测定位与行业意义 DeepSeek MATH 是由深度求索&#xff08;DeepSeek&#xff09;团队构建的高难度数学推理基准&#xff0c;专为评估大语言模型在代数、微积分、组合数学、数…...

别再手动找数据了!用SPSS的‘添加变量’功能,5分钟搞定跨表数据匹配

SPSS数据合并实战&#xff1a;用‘添加变量’功能高效匹配跨表数据 在数据分析的日常工作中&#xff0c;我们常常遇到这样的场景&#xff1a;市场部门提供了一份客户基本信息表&#xff0c;销售团队则提交了季度消费记录&#xff0c;两份数据都包含客户ID字段但其他信息分散在不…...