150. 逆波兰表达式求值
解题思路
首先理解:逆波兰表达式求值
代码
var evalRPN = function(tokens) {
var stack = [], len = tokens.length;
for(let i = 0; i<len;i++){
// ["10","6",-132,"/","*","17","+","5","+"]
if(tokens[i] === '+'){
let first = stack.pop();
let second = stack.pop();
stack.push(first + second);
}else if(tokens[i] === '-'){
let first = stack.pop();
let second = stack.pop();
stack.push(second - first);
}else if(tokens[i] ==='*'){
let first = stack.pop();
let second = stack.pop();
stack.push(first * second);
}else if(tokens[i] === '/'){
let first = stack.pop();
let second = stack.pop();
stack.push(Math.trunc(second / first));
}else{
stack.push(+tokens[i]);
}
}
return stack.pop();
};
239. 滑动窗口最大值
解题思路
代码
347.前 K 个高频元素
解题思路
代码