leetcode Day4 哈希表

87 阅读1分钟

653. 两数之和 IV - 输入 BST

var findTarget = function(root, k) {
    let res=new Set()
    const dfs=function(root){
        if(!root){
            return false
        }
        if(res.has(k-root.val)){
            return true
        }
        res.add(root.val)
        return dfs(root.right) || dfs(root.left)
    }
    return dfs(root)
};

953. 验证外星语词典

var isAlienSorted = function(words, order) {
    let map=new Map()
    for(let i=0;i<order.length;i++){
        map.set(order[i],i)
    }
    map.set(undefined,-1)
    for(let i=0;i<words.length-1;i++){
        for(let j=0;j<Math.max(words[i].length,words[i+1].length);j++){
            if(words[i][j]===words[i+1][j]){
                continue
            }
            else if(map.get(words[i][j])>map.get(words[i+1][j])){
                return false
            }
            else break
        }
    }
    return true
};

961. 在长度 2N 的数组中找出重复 N 次的元素

var repeatedNTimes = function(nums) {
    const n=nums.length/2
    let map=new Map()
    for(let i=0;i<nums.length;i++){
        map.set(nums[i],map.has(nums[i])?map.get(nums[i])+1:1)
    }
    for(let [key,values] of map){
        if(values===n){
            return key
        }
    }
};