代码随想录算法训练营第六天 - 哈希表part01

哈希表

笔记:
哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集合里。当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法
但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。
如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!

242.有效的字母异位词

ord()函数返回一个字符的ASCII码值

class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        record=[0]*26
        #通过ASCII码的差值 来计数
        for i in s:
            record[ord(i)-ord("a")]+=1
        for j in t:
            record[ord(j)-ord("a")]-=1
        for x in record:
            if x!=0:
                return False
        return True

349. 两个数组的交集

用set来实现

class Solution(object):
    def intersection(self, nums1, nums2):
        set1=set(nums1)
        set2=set(nums2)
        len1=len(set1)
        len2=len(set2)
        ans=[]
        if len1<len2:
            set1,set2=set2,set1
        for i in set1:
            if i in set2:
                ans.append(i)
        return ans

202 快乐数

待写

1. 两数之和

待写

你可能感兴趣的:(算法,哈希算法)