代码随想录第五天| 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和

47 阅读1分钟

242.有效字母异位词

242.有效字母异位词

文章讲解

视频讲解

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        record = [0] * 26

        for i in s:
            record[ord(i) - ord('a')] += 1
        
        for i in t:
            record[ord(i) - ord('a')] -= 1
        
        for i in record:
            if i != 0:
                return False
        return True

349. 两个数组的交集

349. 两个数组的交集

文章讲解

视频讲解

重点:使用set函数

class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: return list(set(nums1) & set(nums2))

202. 快乐数

文章讲解

重点:依旧是使用set函数以及对取数值各个位上的单数操作

class Solution:
    def isHappy(self, n: int) -> bool:
        record = set()

        while True:
            n = self.get_sum(n)
            if n == 1:
                return True

            if n in record:
                return False
            else:
                record.add(n)

            
    def get_sum(self, n: int) -> int:
        new_sum = 0
        while n:
            n, r = divmod(n, 10)
            new_sum += r ** 2
        return new_sum


1.两数之和

1.两数之和

文章讲解

视频讲解

  • 为什么用哈希表:想要快速查找一个值
  • 哈希表为什么用map:同时需要值和下标,set数组都不能满足要求
  • 本题map是用来存什么的: 存值和下标
  • map中的keyvalue用来存什么的:key存值,value存下标,题目要求返回下标
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        records = dict()

        for index, value in enumerate(nums):
            if target - value in records:
                return [records[target - value] ,index]
            records[value] = index
        return []