首页 > 其他分享 >代码随想录训练营第六天|LeetCode242有效的字母异位词、LeetCode349两个数组的交集、LeetCode202快乐数、LeetCode1两数之和

代码随想录训练营第六天|LeetCode242有效的字母异位词、LeetCode349两个数组的交集、LeetCode202快乐数、LeetCode1两数之和

时间:2022-12-12 23:24:17浏览次数:73  
标签:LeetCode242 map return 哈希 随想录 number let 数组 两数

LeetCode242有效的字母异位词

tag: #哈希表 #数组
leetcode 地址:242. 有效的字母异位词

代码:

// 通过数组的方式对每个字母进行统计数量,然后遍历数组,查看是否每一项都为0
function isAnagram(s: string, t: string): boolean {
    if(s.length !== t.length) return false
    const base: number = 'a'.charCodeAt(0)
    const arr = new Array(26).fill(0)
    for(let i = 0; i < s.length; i++) {
        arr[s[i].charCodeAt(0) - base]++
        arr[t[i].charCodeAt(0) - base]--
    }
    return arr.every(i => i === 0)
};

思路解析:

  • 常规哈希表存储每个字母出现次数的思路不必赘言
  • 这个思路巧妙的是通过数组的方式代替哈希表,通过数组下标,对应到不同的字母

LeetCode349两个数组的交集

tag: #哈希表 #Set
leetcode 地址:349. 两个数组的交集

代码:

function intersection(nums1: number[], nums2: number[]): number[] {
    const map = {}, res = new Set<number>()
    for(let i = 0; i < nums1.length; i++) {
        map[nums1[i]] = 1
    }

    for(let i = 0; i < nums2.length; i++) {
        let tem = nums2[i]
        if(map[tem] === 1) {
            res.add(tem)
        }
    }
    return Array.from(res)
    
};

思路解析:

  • 用 res = new Set() 来存储,然后使用 Array.from 转换为数组

LeetCode202快乐数

tag: #哈希表
leetcode 地址:202. 快乐数

代码:

function isHappy(n: number): boolean {
    const map = {}
    while(n !== 1) {
        if(map[n] === 1) return false
        map[n] = 1
        n = resetNum(n)
    }
    return true
};

function resetNum(num) {
    let res = 0
    while(num > 0) {
        const tem = num % 10
        res += tem * tem
        num = Math.floor(num / 10)
    }
    return res
}

思路解析:

相似题目:

LeetCode1两数之和

tag: #哈希表
leetcode 地址:1. 两数之和

代码:

function twoSum(nums: number[], target: number): number[] {
    let map = {}
    for(let i = 0; i < nums.length; i++) {
        let minus = target - nums[i]
        if(map[minus] !== undefined) {
            return [map[minus], i]
        }
        map[nums[i]] = i
    }
};

思路解析:

  • 因为需要返回的是数组的下标,因此不能对数组进行排序
  • 因此可以把对应的数值和数组下标存到一个哈希表里

标签:LeetCode242,map,return,哈希,随想录,number,let,数组,两数
From: https://www.cnblogs.com/mlkk/p/16977402.html

相关文章