leetcode Day29

58 阅读1分钟

面试题 04.06. 后继者

var inorderSuccessor = function(root, p) {
    const stack=[]
    let ans=null,pre=null
    while(stack.length || root){
        if(root){
            stack.push(root)
            root=root.left
        }else{
            root=stack.pop()
            if(pre===p){
                ans=root
            }
            pre=root
            root=root.right
        }
    }
    return ans
};

1539. 第 k 个缺失的正整数

var findKthPositive = function(arr, k) {
    for(let i=0;i<arr.length;i++){
        if(arr[i]<=k){
            k++
        }
    }
    return k
};

991. 坏了的计算器

var brokenCalc = function(startValue, target) {
    let ans=0
    while(target>startValue){
        ans++
        if(target%2===1){
            target++
        }else{
            target/=2
        }
    }
    return ans+startValue-target
};