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 range(26):
if record[i] != 0:
return False
return True
349. 两个数组的交集
如果数值很大,建议用set
底层实现哈希值去重:unordered set
底层实现红黑树:set, multiset
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
set = [0] * 1005
for num in nums1:
set[num] = 1
ans = []
for num in nums2:
if set[num] == 1:
ans.append(num)
set[num] += 1 #遍历列表2,去查询有没有重复
return ans
202. 快乐数
# 从个位开始依次取,平方求和,这个要想一想
class Solution:
def isHappy(self, n: int) -> bool:
def calculate_happy(num):
sum_ = 0
while num: # 从个位开始依次取,平方求和
sum_ += (num % 10) ** 2
num = num // 10
return sum_
record = set()
while True:
n = calculate_happy(n)
if n == 1:
return True
if n in record:
return False
else:
record.add(n)
1. 两数之和
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[]
- 今日学习的文章链接
- 自己看到题目的第一想法
毫无头绪
- 看完代码随想录之后的想法
349和1还有点懵,要多看视频理解
- 自己实现过程中遇到哪些困难
想不到
349和1还要多看视频吃透,哈希表做法
- 今日收获,记录一下自己的学习时长