代码随想录第48天"/>
代码随想录第48天
739. 每日温度
/*** @param {number[]} temperatures* @return {number[]}*/
var dailyTemperatures = function(temperatures) {const n=temperatures.lengthconst res=Array(n).fill(0)const stack=[] // 递增栈:用于存储元素右面第一个比他大的元素下标stack.push(0)for(let i=0;i<n;i++){const top=stack[stack.length-1]while(stack.length && temperatures[i] > temperatures[stack[stack.length - 1]]){const top=stack.pop()res[top]=i-top}stack.push(i);}return res;
};
496.下一个更大元素 I
/*** @param {number[]} nums1* @param {number[]} nums2* @return {number[]}*/
var nextGreaterElement = function(nums1, nums2) {let stack = [];let map = new Map();for (let i = 0; i < nums2.length; i++) {while (stack.length && nums2[i] > nums2[stack[stack.length - 1]]) {let index = stack.pop();map.set(nums2[index], nums2[i]);}stack.push(i);}let res = [];for (let j = 0; j < nums1.length; j++) {res[j] = map.get(nums1[j]) || -1;}return res;
};
思想
用set
更多推荐
代码随想录第48天
发布评论