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

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

Problem: 496. 下一个更大元素 I

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述

思路

因为题目说nums1是nums2的子集,那么我们先把nums2中每个元素的下一个更大元素算出来存到一个映射里,然后再让nums1中的元素去查表即可

复杂度

时间复杂度:

O ( n 1 + n 2 ) O(n1 + n2) O(n1+n2);其中 n 1 n1 n1为数组nums1的大小, n 2 n2 n2是数组nums2的大小

空间复杂度:

O ( n 1 ) O(n1) O(n1)

Code

class Solution {/*** Next Greater Element I** @param nums1 Given array* @param nums2 Given array* @return int[]*/public int[] nextGreaterElement(int[] nums1, int[] nums2) {int[] greater = nextGreaterElement(nums2);Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums2.length; ++i) {map.put(nums2[i], greater[i]);}int[] res = new int[nums1.length];for (int i = 0; i < res.length; ++i) {res[i] = map.get(nums1[i]);}return res;}/*** Monotonic stack template** @param nums Given array* @return int[]*/private int[] nextGreaterElement(int[] nums) {int len = nums.length;Stack<Integer> stack = new Stack<>();int[] res = new int[len];for (int i = len - 1; i >= 0; --i) {while (!stack.isEmpty() && stack.peek() <= nums[i]) {stack.pop();}res[i] = stack.isEmpty() ? -1 : stack.peek();stack.push(nums[i]);}return res;}
}

相关文章:

  • 【数据库基础-mysql详解之索引的魅力(N叉树)】
  • sheng的学习笔记-docker部署Greenplum
  • 会话机制:Session
  • Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册
  • Python库之`lxml`的高级用法深度解析
  • Python开发Android手机APP
  • Java入门基础学习笔记42——常用API
  • Python Flask 图片上传与下载
  • 基于yolov5和desnet的猫咪识别模型
  • 深度学习中的优化算法二(Pytorch 19)
  • Spring ----> IOC
  • 探索集合python(Set)的神秘面纱:它与字典有何不同?
  • 【建议收藏】30个较难Python脚本,纯干货分享
  • jenkins升级,涉及ssh remote执行出现Algorithm negotiation fail
  • C++系列-static成员
  • [PHP内核探索]PHP中的哈希表
  • 【Leetcode】101. 对称二叉树
  • JavaScript-如何实现克隆(clone)函数
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Codepen 每日精选(2018-3-25)
  • github从入门到放弃(1)
  • Java 网络编程(2):UDP 的使用
  • Java超时控制的实现
  • Js基础知识(一) - 变量
  • socket.io+express实现聊天室的思考(三)
  • vue 配置sass、scss全局变量
  • 坑!为什么View.startAnimation不起作用?
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 使用 @font-face
  • 延迟脚本的方式
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 【云吞铺子】性能抖动剖析(二)
  • 国内开源镜像站点
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​什么是bug?bug的源头在哪里?
  • ​水经微图Web1.5.0版即将上线
  • #mysql 8.0 踩坑日记
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (152)时序收敛--->(02)时序收敛二
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (回溯) LeetCode 46. 全排列
  • (离散数学)逻辑连接词
  • (转)ORM
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net Core 中间件与过滤器
  • .NET Framework杂记
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET开源、简单、实用的数据库文档生成工具
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .sdf和.msp文件读取
  • /proc/vmstat 详解