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

LeetCode-496-下一个更大元素

题目描述:

image.png

题目链接:LeetCode-496-下一个更大元素

解题思路:
方法一:暴力
方法二:单调栈

方法一代码实现:

class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {// 最笨的方法:暴力int len1= nums1.length;int len2= nums2.length;int[] res=new int[len1];Arrays.fill(res,-1);for (int i = 0; i < len1; i++) {for (int j = 0; j < len2; j++) {if (nums1[i]==nums2[j]){for (int k = j; k <len2 ; k++) {if (nums2[k]>nums2[j]){res[i]=nums2[k];break;// 找到之后一定要 break,不然会一直往后找,每次都是最后一个}}}}}return res;}

方法二代码实现:

  1. 先将nums1中的元素和下标都映射到map中,方便遍历nums2的时候查找
  2. 开始遍历nums2,存放的是下标,初始时将0放到stack中,开始判断栈口元素和当前元素的大小
    • 若 栈口元素 < 当前元素的大小,再判断栈是否为空,并且map中是否包含栈顶元素下标对应的索引,都有的话再更新res数组;
    • 若 栈口元素 = 当前元素的大小,直接入栈
    • 若 栈口元素 > 当前元素的大小,直接入栈
class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {int len1 = nums1.length;int len2= nums2.length;int[] res = new int[len1];// 初始化为-1Arrays.fill(res, -1);// 新学的方式,直接使用工具类,底层原理和自己写的效果是一样的Map<Integer, Integer> map = new HashMap<>();// 将nums1放到map中,目的是根据元素的数值可以找到其对应的下标for (int i = 0; i < len1; i++) {map.put(nums1[i], i);// <4,0>  <1,1>  <2,2>}Stack<Integer> stack = new Stack<>();// 单调栈遍历的是nums2stack.push(0);// 把nums2下标存进去for (int i = 1; i < nums2.length; i++) {// 如果 栈口元素 < 当前遍历元素: 收获结果,栈口元素出栈,再比较当前 栈口元素和 当前遍历元素的结果// 如果 栈口元素 = 当前遍历元素: 直接入栈// 如果 栈口元素 > 当前遍历元素: 直接入栈if (nums2[i] <= nums2[stack.peek()]) {// 保证是单调递增的栈stack.push(i);} else {// 持续判断的过程:先判断是否在map中while (!stack.isEmpty() && nums2[stack.peek()] < nums2[i]) {if (map.containsKey(nums2[stack.peek()])) {Integer index = map.get(nums2[stack.peek()]);res[index] = nums2[i];}stack.pop();// 弹出栈顶元素}stack.add(i);// 都不满足就入栈}}return res;}
}

相关文章:

LeetCode-496-下一个更大元素

题目描述&#xff1a; 题目链接&#xff1a;LeetCode-496-下一个更大元素 解题思路&#xff1a; 方法一&#xff1a;暴力 方法二&#xff1a;单调栈 方法一代码实现&#xff1a; class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {// 最笨的方法&am…...

C++中的Lambda表达式

一、为什么要有lambda表达式 struct Goods {string _name; // 名字double _price; // 价格int _evaluate; // 评价Goods(const char* str, double price, int evaluate):_name(str), _price(price), _evaluate(evaluate){} }; 对于一个Goods类&#xff0c;需要对其中3个成员分…...

dockerfile搭建lnmp

systemctl stop firewalld systemctl disable firewalld setenforce 0 docker network create --subnet172.18.0.0/16 --opt "com.docker.network.bridge.name""docker1" mynetwork #部署nginx&#xff08;容器IP 为 172.18.0.10&#xff09; mkdir /…...

python之数据库操作详解

一般来说&#xff0c;我们对数据库里的操作需要先连接&#xff0c;创建游标对象&#xff0c;然后通过游标对象执行SQL语句去对SQL的数据进行操作&#xff0c;本篇文章旨在记录与科普。 1.cursor相关 元组是不可变的数据类型&#xff0c;只能查询&#xff0c;不能修改&#xf…...

完成flex布局与float布局

一、flex布局 <style>.nav {display: flex;background-color: #f8f8f8; /* 导航栏背景颜色 */}.nav a {flex: 1;display: flex;align-items: center;justify-content: center;padding: 14px 16px;text-decoration: none;color: #555555; /* 导航栏文字颜色 */}.nav a:ho…...

ThinkPHP团购拼购商城源码/带分销团购商城网站源码/完美版

ThinkPHP团购拼购商城源码&#xff0c;带分销团购商城网站源码&#xff0c;很完美的一套基于ThinkPHP开发的团购分销商城源码&#xff0c;界面也很大气&#xff0c;站长亲测。有需要的可以借鉴一下。 下载地址&#xff1a;https://bbs.csdn.net/topics/613231434...

awvs 中低危漏洞

低危 X-Frame-Options Header未配置 查看请求头中是否存在X-Frame-Options Header字段 会话Cookie中缺少secure属性(未设置安全标志的Cookie) 当cookie设置为Secure标志时&#xff0c;它指示浏览器只能通过安全SSL/TLS通道访问cookie。 未设置HttpOnly标志的Cookie 当cookie设置…...

openGauss学习笔记-95 openGauss 数据库管理-访问外部数据库-postgres_fdw

文章目录 openGauss学习笔记-95 openGauss 数据库管理-访问外部数据库-postgres_fdw95.1 使用postgres_fdw95.2 postgres_fdw下推主要成分95.3 常见问题95.4 注意事项 openGauss学习笔记-95 openGauss 数据库管理-访问外部数据库-postgres_fdw openGauss的fdw实现的功能是各个…...

并不止于表面理论和简单示例——《Python数据科学项目实战》

Python 现在可以说是运用最广泛的编程语言之一&#xff0c;使用 Python 的人不只局限在计算机相关专业的从业者,很多来自金融领域、医疗领域以及其他我们无法想象的领域的人,每天都在使用 Python处理各种数据、使用机器学习进行预测以及完成各种有趣的工作。 长久以来&#xff…...

skywalking功能介绍

目标 前置&#xff1a;性能监控-微服务链路追踪skywalking搭建-CSDN博客 使用skywalking进行链路监控&#xff0c;找到应用的时间消耗再哪。 服务 服务信息 请求接口后查看skywalking&#xff0c;可以看到有一个请求&#xff0c;响应时间为1852ms&#xff0c;性能指数Apdex…...

c++桥接模式,中介者模式应用实现状态跳转

上图为例&#xff0c;按上述两种方式实现的模式跳转&#xff0c;如果在原先的三种模式之间再增加多一种模式&#xff0c;就会引起每个模式都会要求改变&#xff0c;并且逻辑混乱&#xff0c;因此更改模式为桥接中介者访问&#xff0c;将抽象和实现分离&#xff0c;实现之间采用…...

【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Ribbon 一、 Ribbon负载均衡原理1.1 负载均…...

亘古难题——前端开发or后端开发

一、引言 前端开发 前端开发是创建WEB页面或APP等前端界面呈现给用户的过程&#xff0c;通过HTML&#xff0c;CSS及JavaScript以及衍生出来的各种技术、框架、解决方案&#xff0c;来实现互联网产品的用户界面交互。 前端开发从网页制作演变而来&#xff0c;名称上有很明显的时…...

Notepad++提取含有特定字符串的行

ctrl M快捷键&#xff0c;进入"标记" 页面 标记所在行–循环查找-- 正则表达式 – 输入关键字 – 全部标记 – Copy Marked Text 关键字格式如下&#xff1a; .*关键字.*ctrl v&#xff0c;粘贴即可。...

host配置

配置host文件的作用主要是用于自定义域名与IP地址之间的映射关系。Host文件是一个操作系统用于将人类可读的域名&#xff08;例如&#xff1a;www.example.com&#xff09;映射到IP地址&#xff08;例如&#xff1a;192.168.1.1&#xff09;的文件。当你在浏览器中输入一个网址…...

```,```中间添加 # + 空格 + 空行后遇到的底部空行出错,书接上回,处理空行

【python查找替换&#xff1a;查找空行&#xff0c;空行前后添加&#xff0c;中间添加 # 空格 空行后遇到的第1行文字&#xff1f; - CSDN App】http://t.csdnimg.cn/QiKCV def is_blank(line):return len(line.strip()) 0txt 时间戳&#xff1a; ("%Y-%m-%d %H:%M:…...

Unity官方文档中关于内存管理的翻译(2021.3)

原文:Memory in Unity - Unity 手册 Unity内存管理 为了确保您的应用程序运行时没有性能问题&#xff0c;了解Unity如何使用和分配内存非常重要。本文档的这一部分解释了Unity中内存是如何工作的&#xff0c;适用于希望了解如何提高应用程序内存性能的读者。 Unity使用三个内…...

点云处理开发测试题目 完整解决方案

点云处理开发测试题目 文件夹中有一个场景的三块点云数据,单位mm。是一个桌子上放了一个纸箱,纸箱上有四个圆孔。需要做的内容是: 1. 绘制出最小外接立方体,得到纸箱的长宽高值。注意高度计算是纸箱平面到桌子平面的距离。 2. 计算出纸箱上的四个圆的圆心坐标和半径,对圆…...

TensorRT的结构

Builder&#xff08;网络原数据&#xff09;&#xff1a;模型搭建的入口&#xff0c;网络的tensorRT内部表示以及可执行程序引擎都是由该对象的成员方法生成的 BuiderConfig&#xff08;网络原数据的选项&#xff09;&#xff1a;负责设置模型的一些参数&#xff0c;如是否开始…...

python对excel数据表进行数据清洗

当拿到excel表&#xff0c;使用python对excel操作前&#xff0c;第一件事情是对excel表的数据进行数据清洗。 数值是否有空值&#xff0c;是否有重复的数据&#xff0c;把以上2个问题解决完成以后&#xff0c;才是对数据真正操作的开始。 1、使用pandans读取数据 2、判断exce…...

OpenClaw 用户通过 Taotoken 快速接入并启用 Agent 工作流

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 OpenClaw 用户通过 Taotoken 快速接入并启用 Agent 工作流 对于使用 OpenClaw 框架构建 AI Agent 的开发者而言&#xff0c;能够灵…...

2026学数据分析对产品岗位的价值分析

一、数据分析在产品岗位中的核心价值数据分析能力帮助产品经理更精准地理解用户需求&#xff0c;优化产品决策。通过数据驱动的方法&#xff0c;减少主观臆断&#xff0c;提升产品迭代效率。数据可视化工具&#xff08;如Tableau、Power BI&#xff09;和统计分析能力&#xff…...

2026年实测AI论文平台榜单(安全合规版)

为解决学术写作中效率与合规两大核心痛点&#xff0c;以下精选8款高适配性AI论文写作工具&#xff08;按综合优先级排序&#xff09;&#xff0c;围绕中文学术规范适配、真实参考文献生成、格式标准化、高性价比四大核心维度筛选&#xff0c;同时配套分场景精准选型方案与学术合…...

OpenSSH CVE-2024-6387 漏洞原理与实战修复指南

1. 这不是普通补丁&#xff1a;CVE-2024-6387 是 OpenSSH 里埋了二十年的“定时炸弹”你有没有遇到过这种情况&#xff1a;凌晨三点&#xff0c;监控告警疯狂闪烁&#xff0c;SSH 登录失败率突然飙升到98%&#xff0c;但服务器负载、内存、磁盘一切正常&#xff1b;运维同事反复…...

OpenMTP:macOS上最强大的免费Android文件传输终极解决方案

OpenMTP&#xff1a;macOS上最强大的免费Android文件传输终极解决方案 【免费下载链接】openmtp OpenMTP - Advanced Android File Transfer Application for macOS 项目地址: https://gitcode.com/gh_mirrors/op/openmtp 还在为macOS和Android设备之间的文件传输而烦恼…...

WinUtil:一键解决Windows系统优化与软件安装的终极指南

WinUtil&#xff1a;一键解决Windows系统优化与软件安装的终极指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否曾为新电脑安装系统…...

独立开发者如何借助Taotoken模型广场快速选型与对比测试

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助Taotoken模型广场快速选型与对比测试 对于独立开发者或小型创业团队而言&#xff0c;项目初期选择合适的大模型…...

职场新人不会写自我介绍怎么办?AI三分钟帮你搞定,面试邀约直接翻倍!

嘿&#xff0c;各位刚踏入职场的小萌新、想跳槽但又苦于没新项目亮点的打工人&#xff01;你是不是也遇到过这种尴尬&#xff1a;辛辛苦苦写完简历&#xff0c;最后却卡在“自我介绍”或者“个人总结”那块&#xff1f; 要么就是寥寥几句套话&#xff0c;像“本人性格开朗&…...

如何用elan终极解决Lean版本管理难题:完整开发者指南

如何用elan终极解决Lean版本管理难题&#xff1a;完整开发者指南 【免费下载链接】elan The Lean version manager 项目地址: https://gitcode.com/gh_mirrors/el/elan 在Lean定理证明器的开发过程中&#xff0c;你是否遇到过这样的困境&#xff1a;项目A需要Lean 4.0.0…...

如何快速一键获取Steam游戏清单?Onekey工具完整使用指南

如何快速一键获取Steam游戏清单&#xff1f;Onekey工具完整使用指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 你是否曾经为了获取Steam游戏的清单文件而花费大量时间查找App ID、配置解锁…...