栈与队列(JAVA)

news2024/10/9 8:29:05

单调栈:

下一个更大元素。

 题目意思如图所示:

 单调栈图解:

 

class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        Stack<Integer>stack=new Stack<>();
        int res[]=new int[nums2.length];
        int ans[]=new int[nums1.length];
        //从后往前寻找某一元素的下一个比它大的元素。只要看栈顶元素即可。这是一个单调栈
        for(int i=nums2.length-1;i>=0;i--)
        {
            while(!stack.isEmpty()&&nums2[i]>=stack.peek())
            {
                stack.pop();
            }
            res[i]=stack.isEmpty()?-1:stack.peek();
            stack.push(nums2[i]);
        }
        for(int i=0;i<nums1.length;i++)
        {
            for(int j=0;j<nums2.length;j++)
            {
                if(nums1[i]==nums2[j])
                {
                    ans[i]=res[j];
                    break;
                }
            }
        }
        return ans;
    }
}

每日温度:

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

 

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

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

相关文章

为什么要使用Token

传统的session认证 我们知道&#xff0c;http协议是一种无状态的协议&#xff0c;这就意味着当用户向我们的应用提供了用户名和密码进行用户认证&#xff0c;那么在下一次登录的时候&#xff0c;用户还要再进行验证&#xff0c;因为根据http协议&#xff0c;浏览器并不知道是谁…

Shipping mode --为省电而生

关于shipping mode 相信很多做消费类电子产品的硬件工程师对这对英文耳熟能详。日常家用的手机&#xff0c;电脑&#xff0c;电子手表都用到了这项技术。 shipping mode可译为运输模式&#xff0c;又或者船运模式&#xff0c;其技术的实现主要依靠于电子产品中的充电管理芯片。…

Java自学网站推荐--全网最靠谱

原文网址&#xff1a;Java自学网站推荐--全网最靠谱_IT利刃出鞘的博客-CSDN博客 简介 网上有各种Java学习网站&#xff0c;本文推荐的这个Java网站全网最靠谱&#xff0c;质量远超其他所有网站。 这个网站是&#xff1a;自学精灵&#xff0c;这是全网最强的Java学习网站&…

SpringBootWeb请求-响应

HTTP请求 前后端分离 在这种模式下&#xff0c;前端技术人员基于"接口文档"&#xff0c;开发前端程序&#xff1b;后端技术人员也基于"接口文档"&#xff0c;开发后端程序。 由于前后端分离&#xff0c;对我们后端技术人员来讲&#xff0c;在开发过程中&a…

机器学习算法详解2:线性回归

机器学习算法详解2&#xff1a;线性回归 前言 ​ 本系列主要对机器学习上算法的原理进行解读&#xff0c;给大家分享一下我的观点和总结。 本篇前言 ​ 本篇对线性回归的算法原理进行解读。 目录结构 文章目录 机器学习算法详解2&#xff1a;线性回归1. 引子2. 原理3. 特点4. 问…

如何使用SQL SERVER的OpenQuery

如何使用SQL SERVER的OpenQuery 一、OpenQuery使用说明二、 OpenQuery语法2.1 参数说明2.2注解 三、示例3.1 执行 SELECT 传递查询3.2 执行 UPDATE 传递查询3.3 执行 INSERT传递查询3.4 执行 DELETE 传递查询 一、OpenQuery使用说明 在指定的链接服务器上执行指定的传递查询。 …

领域驱动设计:DDD 关键概念

文章目录 领域和子域核心域、通用域和支撑域通用语言限界上下文实体值对象聚合聚合根设计聚合 DDD 的知识体系提出了很多的名词&#xff0c;像&#xff1a;领域、子域、核心域、通用域、支撑域、限界上下文、聚合、聚合根、实体、值对象等等&#xff0c;非常多。 领域和子域 …

每日一题(两数相加)

每日一题&#xff08;两数相加&#xff09; 2. 两数相加 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a; 由于链表从头开始向后存储的是低权值位的数据&#xff0c;所以只需要两个指针p1和p2&#xff0c;分别从链表的头节点开始遍历。同时创建一个新的指针new…

记录窗体关闭位置(从窗体上次关闭的位置启动窗体)

从上次关闭位置启动窗体 基础类 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq;namespace WindowsFormsApp1 {public class Reg{public static voi…

OpenCV 12(图像直方图)

一、图像直方图 直方图可以让你了解总体的图像像素强度分布&#xff0c;其X轴为像素值&#xff08;一般范围为0~255&#xff09;&#xff0c;在Y轴上为图像中具有该像素值像素数。 - 横坐标: 图像中各个像素点的灰度级. - 纵坐标: 具有该灰度级的像素个数. 画出上图的直方图: …

算法刷题记录-其他类型(LeetCode)

57 57. Insert Interval 思路 模拟 用指针去扫 intervals&#xff0c;最多可能有三个阶段&#xff1a; 不重叠的绿区间&#xff0c;在蓝区间的左边有重叠的绿区间不重叠的绿区间&#xff0c;在蓝区间的右边 逐个分析 不重叠&#xff0c;需满足&#xff1a;绿区间的右端&…

第 2 章 线性表 ( 双链循环线性表(链式存储结构)实现)

1. 背景说明 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H#define CHECK_NULL(pointer) if (!(pointer)) { \printf("FuncName: %-15s Line: %-5d ErrorCode: %-3d\n", __func__, __LINE__, ERR_NULL_PTR…

2023 年最新Java 毕业设计选题题目参考,500道 Java 毕业设计题目,值得收藏

大家好&#xff0c;我是程序员徐师兄&#xff0c;最近有很多同学咨询&#xff0c;说毕业设计了&#xff0c;不知道选怎么题目好&#xff0c;有哪些是想需要注意的。 确实毕设选题实际上对很多同学来说一个大坑&#xff0c; 每年挖坑给自己跳的人太多太多&#xff0c;选题选得好…

JavaScript关于对象的小挑战

让我们再来看看马克和约翰比较他们的体重指数的情况吧! 这一次&#xff0c;让我们用物体来实现计算! 记住&#xff1a;BMI质量/身高**2质量/&#xff08;身高*高度&#xff09;。(质量以公斤为单位&#xff0c;身高以米为单位) 为他们每个人创建一个对象&#xff0c;其属性为全…

MySQL触发器使用指南大全

一、介绍 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前或之后&#xff0c;触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性&#xff0c;日志记录&#xff0c;数据校验等操作。 使用别名OLD和NEW来引…

【操作系统实验】进程管理与内存分配模拟程序-含可运行有界面的Python代码

本文是博主之前做的操作系统实验&#xff0c;现在将完整代码和效果图免费放在下面&#xff0c;供大家参考&#xff0c;如果觉得有用&#xff0c;希望大家可以三连关注支持&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 实验目的 设计编写OS进程…

15. 线性代数 - 克拉默法则

文章目录 克拉默法则矩阵运算Hi,大家好。我是茶桁。 上节课我们在最后提到了一个概念「克拉默法则」,本节课,我们就来看看到底什么是克拉默法则。 克拉默法则 之前的课程我们一直在强调,矩阵是线性方程组抽象的来的。那么既然我们抽象出来了,有没有一种比较好的办法高效…

合宙Air724UG LuatOS-Air LVGL API控件-二维码(Qrcode)

二维码&#xff08;Qrcode&#xff09; 示例代码 qrcodelvgl.qrcode_create(lvgl.scr_act(),nil)lvgl.qrcode_set_txt(qrcode,"https://doc.openluat.com/home")lvgl.obj_set_size(qrcode,400,400)lvgl.obj_align(qrcode, nil, lvgl.ALIGN_CENTER, 0, 0)创建 可以通…

496. 下一个更大元素 I

class Solution { public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {// 存储numx2右侧第一个比它的元素数值std::unordered_map<int, int> index;std::stack<int> sta;for (int i nums2.size()-1; i &…

uniapp项目实践总结(十四)封装存储和路由方法

导语&#xff1a;在日常 APP 开发过程中&#xff0c;经常要用到数据的存储、获取和删除等操作以及页面导航之间的跳转&#xff0c;为此&#xff0c;封装了一个两个简单的方法来统一调用。 目录 原理分析方法实现实战演练案例展示 原理分析 主要是以下 API。 uni.setStorage…