算法-单调栈-1
题目: 找出一组数中 右边第一个比他大的数 和 左边第一个比他大的数
维护一个栈底到栈顶 从大到小的栈,当压入的数大于栈顶的数 统计栈顶数的左边最大与右边最大
当没有压入值的时候 依次弹出 求出左边最大的值
栈里 底下的数是大于当前数的 上面的数是小于当前数的
求最近的大于当前值的数是 栈顶到栈底 由大到小
求最近的小雨当前值的数是 栈顶到栈底 由小到大
1 package com.example.demo.algorithm.forceAttempt; 2 3 import java.util.Stack; 4 5 public class NearMinNum { 6 public int[][] getNearMinNum(int[] arr) { 7 Stack<Integer> stack = new Stack<>(); 8 int[][] res = new int[arr.length][2]; 9 for (int i = 0; i < arr.length; i++) { 10 while (!stack.isEmpty() && arr[stack.peek()] > arr[i]) { 11 Integer pop = stack.pop(); 12 int p = stack.isEmpty() ? -1 : stack.peek(); 13 res[pop][0] = p; 14 res[pop][1] = i; 15 } 16 stack.push(i); 17 } 18 while (!stack.isEmpty()) { 19 Integer pop = stack.pop(); 20 res[pop][1] = -1; 21 int p = stack.isEmpty() ? -1 : stack.peek(); 22 res[pop][0] = p; 23 } 24 return res; 25 } 26 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!