关于链表
- 可以补充个假的首节点。就不需要考虑空了。
- 快慢指针
python相关
- 小根堆 heapq
import heapq
a = []
heapq.heappush(a, 3)
heapq.heappush(a, 2)
heapq.heappush(a,4)
print(a)
print(heapq.heappop(a))
print(a)
ps:大根堆就是 添加元素的时候带个负号就好了。
- 四舍五入保留俩位小数 round(num,2)
- 全排列 itertools库
import itertools
elements = [1, 2, 3]
result = list(itertools.permutations(elements))
print(result)
- 最大值 最小值 表示
import sys
print(sys.maxsize)
print(-sys.maxsize-1)
- 有序字典 根据插入的顺序排序。
import collections
od = collections.OrderedDict()
od['c'] = 1
od['a'] = 3
print(od)
输出 OrderedDict([('c', 1), ('a', 3)])
- 排序
list 排序可以使用sort() 没有返回值。
l = [3,2,1]
l.sort()
print(l)
sorted()方法有返回值。可以指定多个字段排序。
ls = [(1,3),(1,2),(3,3)]
ls2 = sorted(ls, key=lambda a: (a[0],a[1]))
print(ls2)
- 有序列表 。可以获取最大值和最小值。
- 易错注意
list.append() list.sort()是没有返回值的。传递给方法的时候就容易为None.
错误示范:f(nums, index + 1, res, l.append(nums[index]))
正确示范:
l.append(nums[index])
f(nums, index + 1, res, l)