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

js单调栈解题模板

模板

function solve(arr) {const stack = [];const result = new Array(arr.length).fill(默认值);for (let i = 0; i < arr.length; i++) {while (stack.length && 比较条件(arr[i], arr[栈顶])) {const top = stack.pop();result[top] = 计算结果(i, top); }stack.push(i);}return result;
}

例题一:每日温度

题目描述

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

示例 1:
输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

代码

 //"需要为每个元素寻找下一个更大/更小元素"这类问题适用于单调栈
var dailyTemperatures = function(temperatures) {const n = temperatures.length;let stack  = [];let ans = new Array(n).fill(0);for(let i=0; i<n; i++){while(stack.length && temperatures[i] > temperatures[stack[stack.length-1]]){let cur = stack.pop();ans[cur] = i-cur;}stack.push(i);}return ans;
};

例题二:柱状图中最大的矩形

题目描述

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积。
在这里插入图片描述

代码

var largestRectangleArea = function(heights) {// 头部加0:避免空栈判断,保证栈永远不为空// 尾部加0:强制所有有效柱子出栈计算heights = [0,...heights,0];const n = heights.length;let st = [];let ans = 0;for(let i=0; i<n; i++){while(st.length && heights[i] < heights[st[st.length-1]]){let h = heights[st.pop()];let w = i-st[st.length-1]-1; //左边界减去右边界(栈顶元素是第一个比当前矮的左柱子)ans = Math.max(ans, h*w); }st.push(i);}return ans;
};

相关文章:

  • [UVM]UVM中reg_map的作用及多个rem_map的使用案例
  • QNAP Duplicati 备份 123云盘
  • Learning vtkjs之Cutter
  • Spring AI 实战:第一章、Spring AI入门之DeepSeek调用
  • 深入解析高并发场景下分布式缓存优化实战:从原理到性能提升
  • MIT6.S081-lab8
  • 创建第一个简单cesium程序
  • Vscode+git笔记
  • 什么是 Redis?
  • PCIe | TLP | 报头 / 包格式 / 地址转换 / 配置空间 / 寄存器 / 配置类型
  • 叠层阻抗线框
  • MNN 支持 DeepSeekVL
  • Docker安装Ollama及使用Ollama部署大模型
  • 解析机器人 2.0.2 | 支持超过50种短视频平台的链接解析,无水印提取,多功能下载工具
  • deepSeek论文写作提示词指令大全(覆盖选题、写作、润色到投稿全流程)
  • 测试基础笔记第十八天
  • linux下,ollama会把模型文件保存在哪里?
  • Python Cookbook-6.17 NuIl对象设计模式的实现
  • 归并排序【逆序对】
  • Day04 新增套餐
  • 民族音乐还能这样玩!这场音乐会由AI作曲
  • 消息人士称以色列政府初步同意扩大对加沙军事行动
  • 巴菲特执掌60年,伯克希尔市值如何增长5.5万倍?详解五大经典投资案例
  • 2024年境内酒店住宿行业指标同比下滑:酒店行业传统增长模式面临挑战
  • 五一期间全国高速日均流量6200万辆,同比增长8.1%
  • 浪尖计划再出发:万亿之城2030课题组赴九城调研万亿产业