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. 两个数组的交集
重点:使用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.两数之和
- 为什么用哈希表:
想要快速查找一个值 - 哈希表为什么用
map:同时需要值和下标,set和数组都不能满足要求 - 本题
map是用来存什么的: 存值和下标 map中的key和value用来存什么的: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 []