386. 字典序排数
法一:sort()直接排序
var lexicalOrder = function(n) {
let res=[]
for(let i=1;i<=n;i++){
res.push(i)
}
return res.sort()
};
法二:深度优先搜索
var lexicalOrder = function(n) {
let res=[]
let number=1
for(let i=0;i<n;i++){
res.push(number)
if(number*10<=n){
number=number*10
}
else{
while(number+1>n || number%10===9){
number=Math.floor(number/10)
}
number++
}
}
return res
};
590. N 叉树的后序遍历
var postorder = function(root) {
if(!root)return []
let res=[]
const dfs=function(node){
for(let i of node.children){
dfs(i)
}
res.push(node.val)
}
dfs(root)
return res
};
897. 递增顺序搜索树
var increasingBST = function(root) {
let res=[]
const dfs=function(node){
if(!node){
return
}
dfs(node.left)
res.push(node.val)
dfs(node.right)
}
dfs(root)
let vroot=new TreeNode(-1)
let cur=vroot
for(let i of res){
cur.right=new TreeNode(i)
cur=cur.right
}
return vroot.right
};
1021. 删除最外层的括号
var removeOuterParentheses = function(s) {
let stack=[]
let res=''
for(let i=0;i<s.length;i++){
if(s[i]==='('){
if(stack.length===0){
stack.push(s[i])
}else{
res=res+s[i]
stack.push(s[i])
}
}
else {
stack.pop()
if(stack.length!==0){
res=res+s[i]
}
}
}
return res
};
1441. 用栈操作构建数组
var buildArray = function(target, n) {
let res=[]
for(let i=1;i<=n;i++){
if(target.indexOf(i)!==-1 && target.indexOf(i)!==target.length-1){
res.push('Push')
}
else if(target.indexOf(i)==-1 && target.indexOf(i)!==target.length-1){
res.push('Push','Pop')
}
else if(target.indexOf(i)!==-1 && target.indexOf(i)===target.length-1){
res.push('Push')
break
}
}
return res
};
1475. 商品折扣后的最终价格
var finalPrices = function(prices) {
let res=[]
for(let i=0;i<prices.length;i++){
for(let j=i+1;j<prices.length;j++){
if(prices[j]<=prices[i]){
res.push(prices[i]-prices[j])
break
}
}
if(res.length<=i){
res.push(prices[i])
}
}
return res
};