185、【栈与队列】leetcode ——496. 下一个更大元素 I:单调栈-哈希表(C++版本)

news2024/11/15 23:45:13

题目描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原题链接:496. 下一个更大元素 I

解题思路

本题与 739. 每日温度 的区别在于,需要先通过让nums1nums2判定出为想等元素后,再去找nums2中更大的数。

因此,第一步需要找到想等数,第二步需要找到大于的数。

对于第一步,我们可以用Hash表完成nums1nums2中想等元素的映射关系,存储nums1中下标,采用空间换时间的方式,避免两重for循环。

对于第二步,就采用和每日温度相同的单调栈方式,维持一个从栈底到栈顶的递减栈。当遇到nums1nums2中想等元素时,就记录答案。如果没有遇到就进行正常的入栈,出栈操作。

class Solution {
public:
    vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
        int n1 = nums1.size(), n2 = nums2.size();        
        vector<int> res(n1, -1);        
        unordered_map<int, int> umap;
        for(int i = 0; i < n1; i++)     umap[nums1[i]] = i;

        stack<int> st;                
        st.push(0);        
        for(int i = 1; i < n2; i++) {
            while(!st.empty() && nums2[st.top()] < nums2[i]) {
                if(umap.count(nums2[st.top()]) > 0) {
                    int index = umap[nums2[st.top()]];
                    res[index] = nums2[i];
                }
                st.pop();
            }
            st.push(i);
        }


        return res;

    }
};

参考文章:496.下一个更大元素 I

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快手电商新增商品信息诊断规则,对商家有何影响?

1、2022年快手短剧日活跃用户达2.6亿 新榜讯 近日&#xff0c;快手数据显示&#xff0c;2022年快手短剧日活跃用户达2.6亿&#xff0c;现在的付费用户数对比2022年4月增长超过480%&#xff0c;快手已经是最大的短剧消费市场。此外&#xff0c;2023年快手小游戏日活跃用户峰值超…

【Go】基于telegraf进行自定义插件开发(二)

基于telegraf进行自定义插件开发&#xff08;二&#xff09;前言正文设计开发过程单个服务的处理结构体同时定义了string和数值类型适配本机服务或者多个ip来源程序打包结语前言 书接上会&#xff0c;这次记录一下我基于telegraf进行的hdfs监控组件的开发工作&#xff0c;这其…

RabbitMQ实现延时队列

目录什么是延时队列延时队列的使用场景前提准备利用RabbitMQ实现延时队列延时队列优化利用RabbitMQ插件实现延迟队列什么是延时队列 延时队列&#xff0c;首先&#xff0c;它是一种队列&#xff0c;队列意味着内部的元素是有序的&#xff0c;元素出队和入队是有方向性的&#…

沃尔玛采购退款大额过不了的原因是什么?

市面上有很多伪装工具&#xff0c;但不是针对沃尔玛&#xff0c;很多软件方只是针对大众平台伪装&#xff0c;主要是方便程序开发人员调测系统程序&#xff0c;并不是能用于沃尔玛行业。而且每一个平台的风控是不—样的&#xff0c;我们技术团队从底层硬件环境开始配合软件控制…

【论文精读】MVSNet系列(2018-2022)总结

MVSNet系列总结1.MVSNet ECCV20182.RMVSNet CVPR20193.P-MVSNet ICCV20194.MVSCRF ICCV20195.PointMVSNet ICCV20192019年的这四篇文章各有特点&#xff0c;其中RMVSNet、PointMVSNet更是打开了可以继续沿着往下做的思路&#xff1a;6.cascade MVSNet CVPR20207.UCSNet CVPR202…

初识go变量,使用var和:=来声明变量,声明变量的三种方式

初识go变量,使用var和:来声明变量&#xff0c;声明变量的三种方式 Go语言的变量名由字母、数字、下划线组成&#xff0c;其中首个字符不能为数字。 tip:(Go语言中的变量的规范&#xff0c;也和其他高级语言相同) 声明变量的一般形式是使用 var 关键字&#xff1a; var 变量…

SpringCloud源码探析(二)-Nacos注册中心

1.概述 Nacos是Spring Cloud Alibaba中的核心组件之一&#xff0c;它提供了服务发现、服务配置和服务管理等功能&#xff0c;可以作为注册中心和配置中心使用。注册中心是微服务架构体系中的核心组件之一&#xff0c;Nacos比Eureka有着更强大的功能&#xff0c;它们都能提供服…

Java多线程系列-- ForkJoin框架,分治的艺术

前言 本篇是多线程系列中的一篇&#xff0c;我们在先前的一篇文章中回顾了线程池的主要知识 Java多线程基础–线程的创建与线程池管理 过去了很长时间&#xff0c;我们简单提要一下&#xff1a; 设计目的&#xff1a;简化线程的使用&#xff0c;管理与复用&#xff0c;避免…

Windows 远程桌面安全吗?电脑远程桌面的安全如何保障?

远程桌面会话在加密通道上运行&#xff0c;防止任何人通过监听网络来查看您的会话。 但是&#xff0c;在早期版本的 RDP 中用于加密会话的方法存在漏洞。 此漏洞可能允许使用中间人攻击 (link is external) 未经授权访问您的会话。 我们可以在 Windows 10、Windows 11 和 Wind…

学好数据结构与算法其实一点也不难

一. 初识算法 1.1 什么是算法&#xff1f; 定义 在数学和计算机科学领域&#xff0c;算法是一系列有限的严谨指令&#xff0c;通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous …

MSVCP140.dll下载及安装教程,dll修复方法

MSVCP140.dll是Windows操作系统中的一个DLL文件&#xff0c;许多程序依赖于它来正常运行。如果您尝试运行某个程序时&#xff0c;发现缺少MSVCP140.dll文件&#xff0c;那么您需要下载并安装它才能解决问题。本文将介绍如何MSVCP140.dll下载和安装MSVCP140.dll。 第一步&#x…

解决树莓派 bullseye (11) 系统无法通过 xrdp 远程连接的问题

我手上有一台树莓派 4B&#xff0c;使用官方镜像烧录器烧录老版本操作系统 buster (10) 时可以正常通过 Windows 远程桌面连接上&#xff0c;但换成最新的 bullseye (11) 系统后却无法正常连接远程桌面。 问题复现&#xff1a; 使用官方镜像烧录器烧录&#xff0c;配置用户名为…

CSDN 竞赛 32 期

CSDN 竞赛 32 期1、题目名称&#xff1a;传奇霸业2、题目名称&#xff1a;严查枪火3、题目名称&#xff1a;蚂蚁家族4、题目名称&#xff1a;运输石油小结1、题目名称&#xff1a;传奇霸业 传奇霸业&#xff0c;是兄弟就来干。 小春(HP a)遇到了一只黄金哥布林(HP x)。 小春每…

20个让你效率更高的CSS代码技巧

在本文中&#xff0c;我们想与您分享一个由各大css网站总结推荐的20个有用的规则和实践经验集合。有一些是面向CSS初学者的&#xff0c;有一些知识点是进阶型的。希望每个人通过这篇文章都能学到对自己有用的知识。好了&#xff0c;我们开始。1.注意外边距折叠与其他大多数属性…

从工地转行软件测试,拿下13k+年终奖是种什么体验?

最近&#xff0c;一则名为《我&#xff1a;毕业五年&#xff0c;存款5000。她:中传硕士&#xff0c;火锅店保洁》的视频走红网络&#xff0c;两位名校毕业生看似高开低走的就业经历&#xff0c;引起了很多人的共鸣。她们所传达的并不是所谓的躺平、摆烂&#xff0c;而是希望更多…

spark性能调优(一):Shuffle

Shuffle 一、配置项调优二、减少shuffle数据量三、避免shuffle何为shuffle? 集群中跨进程、跨节点的数据分发(Map的输出文件写到本地磁盘,Reducer把Map的输出文件拉到本地)为什么要shuffle? 准确的说,shuffle是刚需(业务场景决定的),分布式环境中,不同节点不能进行内存交换,只…

加快发展先进制造业势在必行!

众所周知&#xff0c;我国是制造大国&#xff0c;但并非制造强国。而我们在持续发展制造业的进程中也面临着诸多实际问题&#xff0c;如产业发展后续乏力&#xff0c;环境制约异常突出&#xff0c;技术创新能力薄弱&#xff0c;结构调整任务艰巨等等。故而要实现由制造大国向制…

数据结构与算法之二叉树大全

目录二叉树的定义二叉树的性质(特性)满二叉树与完全二叉树链式存储的二叉树顺序存储的二叉树线索二叉树(Threaded BinaryTree)二叉排序树&#xff08;Binary Sort Tree&#xff09;平衡二叉树&#xff08; Balanced Binary Tree&#xff09;为什么使用平衡二叉树&#xff1f;如…

Vue中如何利用websocket实现实时通讯

首先我们可以先做一个简单的例子来学习一下简单的websocket模拟聊天对话的功能 原理很简单&#xff0c;有点像VUE中的EventBus&#xff0c;用emit和on传来传去 首先我们可以先去自己去用node搭建一个本地服务器 步骤如下 1.新建一个app.js&#xff0c;然后创建pagejson.js文…

最简单的代码生成器,netcore平台,EF架构,smartsofthelp

1.dbhelper 原生SQL操作类2.Model 实体层3.EF dbfirst 生成entites 实体操作类4.EF实体接口增删改查操作方法成员5.UI 展示层SQL数据脚本Model/// <summary>/// Model实体层 /// </summary>namespace Smart.Model{/// <summary>/// 数据实体层 T_Eventsmart …