1

2221 三角和

第一眼看题完全没想法呃(⊙o⊙)…原来是不断的替代😥

1
2
3
4
5
6
class Solution(object):
def triangularSum(self, nums):
for n in range(len(nums) - 1, 0, -1):
for i in range(n):
nums[i] = (nums[i] + nums[i + 1]) % 10
return nums[0]

2

49 字母异位词分组

  1. 哈希

  2. defaultdict 是 Python 标准库 collections 模块中的一个类,它是内置 dict 类的子类,主要用于简化字典中缺失键的处理。

与普通字典不同,defaultdict 在初始化时需要指定一个默认工厂函数(如 listintset 等),当访问字典中不存在的键时,会自动调用该工厂函数创建一个默认值,而不是抛出 KeyError 异常。

类似 if key not in d: d[key] = []

1
2
3
4
5
6
7
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
d = defaultdict(list)
for s in strs:
k = ''.join(sorted(s))
d[k].append(s)
return list(d.values())

3

128 最长连续序列

集合的 O (1) 时间复杂度查找 特性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
s = set(nums)
length = 0
for x in s:
if x-1 not in s:
y = x
z = 1
while y + 1 in s:
y += 1
z += 1
length = max(length, z)

return length

还有是直接删掉元素,s.remove(y)也是实现了减小了时间复杂度