代码随想录35期Day54-JavaScript

Day54题目

### LeetCode739每日温度

核心思想:今天主要是学会单调栈的使用.找到比元素更大的下一个元素,如果比栈顶元素小就入栈,否则就出栈顶元素,当前元素就是比栈顶元素大的"下一个更大的元素".

java 复制代码
/**
 * @param {number[]} temperatures
 * @return {number[]}
 */
var dailyTemperatures = function(temperatures) {
	// 单调栈存放下标
    var stack = []
    var answers = new Array(temperatures.length).fill(0)
    stack.push(0)
    for(var i  = 1 ; i < temperatures.length ; i ++ ){
    	// js没有peek,只能使用数组类似的下标访问最后一个元素
        while(temperatures[stack[stack.length-1]] < temperatures[i]){
            var index = stack.pop();
            answers[index] = i - index;
        }
        stack.push(i);
    }

    return answers;
};

LeetCode496下一个更大元素

核心思想:使用单调栈存储元素的值就行

java 复制代码
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var nextGreaterElement = function(nums1, nums2) {
    var answers = [];
    var stack = []
    var tem = [];
    stack.push(nums2[0])
    for(let i = 0 ; i < nums2.length ; i ++){
        while(stack[stack.length-1] < nums2[i]){
            tem[stack.pop()] = nums2[i];
        }
        stack.push(nums2[i]);
    }
    for(let i = 0 ; i < nums1.length ; i ++){
        if(!tem[nums1[i]]){
            answers.push(-1)
        }else{
            answers.push(tem[nums1[i]]);
        }
    }
    return answers;
};  
相关推荐
X1A0RAN5 分钟前
PPT 图片批量处理教程:导出全部幻灯片 · 提取全部素材
开发语言·javascript·powerpoint
量化分析码农1 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
熊猫钓鱼>_>1 小时前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos
瑞雪兆丰年兮1 小时前
JavaWeb-day13-SpringBootWeb事务管理&AOP
java·开发语言·springboot·javaweb·事务·web·aop
天才熊猫君3 小时前
给 Vue 的 reactive 套 Proxy,为什么响应式会失灵?
前端·javascript
布莱克6053 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
布莱克6053 小时前
Swift 可选类型(Optionals)详解:从原理到实战
开发语言·安全·ssh·swift·optional·可选类型
用户2763965765105 小时前
放弃 JWT 后,我给 FastAPI 游戏服务端手撸了一套 token session
javascript
瑞雪兆丰年兮6 小时前
JavaWeb-day14-SpringBootWeb原理篇
java·开发语言·spring boot·spring·bean·mybatis·javaweb
用户84298142418106 小时前
从 JavaScript 到可运行的字节码 - ByteJS 使用指南
javascript