暴力破解
var dailyTemperatures = function(T) {
let res = []
for(let i = 0; i < T.length; i++) {
const curr = T[i];
for (let j = i + 1; j < T.length; j++) {
if (curr < T[j]) {
res.push(j - i);
break;
}
}
if (!res[i]) {
res[i] = 0;
}
}
return res;
};
const T = [12,23,13,15,17];
const arr = dailyTemperatures(T)
console.log('arr: ', arr);
优化暴力破解
var dailyTemperatures = function (T) {
let res = new Array(T.length).fill(0);
for (let i = 0; i < T.length; i++) {
const curr = T[i];
for (let j = i + 1; j < T.length; j++) {
if (curr < T[j]) {
res[i] = (j - i);
break;
}
}
}
return res;
};
const arr = dailyTemperatures(T)
console.log('arr: ', arr);
解决 栈
var dailyTemperatures = function(T) {
let res = new Array(T.length).fill(0);
let stack = [];
for (let i = 0; i < T.length; i++) {
const curr = T[i];
while (stack.length && curr > T[stack[stack.length - 1]]) {
const j = stack.pop();
res[j] = i - j;
}
stack.push(i);
}
return res;
};
const T = [12,13, 24, 24, 13,15,17, 45, 46];
const arr = dailyTemperatures(T)
console.log('arr: ', arr);