钟楼区建设局网站,做本地婚恋网站,平台软件定制开发,凯里门户网Day54题目
### LeetCode739每日温度
核心思想:今天主要是学会单调栈的使用.找到比元素更大的下一个元素,如果比栈顶元素小就入栈,否则就出栈顶元素,当前元素就是比栈顶元素大的下一个更大的元素.
/*** param {number[]} temperatures* return {number[]}*/
var …Day54题目
### LeetCode739每日温度
核心思想:今天主要是学会单调栈的使用.找到比元素更大的下一个元素,如果比栈顶元素小就入栈,否则就出栈顶元素,当前元素就是比栈顶元素大的下一个更大的元素.
/*** 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下一个更大元素
核心思想:使用单调栈存储元素的值就行
/*** 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;
};