☰
Leetcode 单调栈模板
2026/10/13 7:01:44 网站建设 项目流程
public int[] monoStack(int[] nums){ int n=nums.length; int[] ret=new int[n]; Arrays.fill(ret,-1); Deque<Integer> stack=new ArrayDeque<>(); //存下标 for(int i=0;i<n;i++){ while(!stack.isEmpty()&&nums[i]>nums[stack.peek()]){ int top=stack.pop(); //top 被弹出元素 //i 右边界 //stack.peek() 左边界 ret[top]=?; } stack.push(i); } return ret; }

单调栈专门解决"对每个元素,找它旁边第一个比它大/小的元素"这类问题——暴力是 O(n²) 的两层循环,单调栈把它压到 O(n)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询