a=float(“inf”)无穷大
abs()绝对值
数组
NC140 排序
1、冒泡排序(Bubble Sort)
2、选择排序(Selection Sort)
3、插入排序(Insertion Sort)
4、希尔排序(Shell Sort)
5、归并排序(Merge Sort)
6、快速排序(Quick Sort)
7、堆排序(Heap Sort)
8、计数排序(Counting Sort)
BM53 缺失的第一个正整数
continue
range
BM89 合并区间
①arr.sort(key=lambda x:x.start)
②for i in arr[1:]:
26. 删除有序数组中的重复项
16. 最接近的三数之和
11. 盛最多水的容器
NC22 合并两个有序的数组
367. 有效的完全平方数
59. 螺旋矩阵 II
二分、排序
704. 二分查找
BM18 二维数组中的查找
35. 搜索插入位置 二分[K]
(同上)剑指 Offer II 068. 查找插入位置
34. 在排序数组中查找元素的第一个和最后一个位置
69. x 的平方根 二分查找法、公式法
BM21 旋转数组的最小数字
162. 寻找峰值
165. 比较版本号
①for x in zip_longest(version1.split(‘.’),fillvalue=0):
i,j=int(x),int(y)
②i1 = int(nums1[i]) if i < n1 else 0
③ord(version1[i])-ord(‘0’)
哈希表
3. 无重复字符的最长子串 滑动窗口 、双指针、哈希表+双指针、暴力解
lookup=set()
剑指 Offer II 004. 只出现一次的数字
dic={}
for item in nums:
dic[item]=dic.get(item,0)+1 #计数
for k in dic.keys():
if dic[k]==1:
return k
(同上)BM52 数组中只出现一次的两个数字
(同上)NC73 数组中出现次数超过一半的数字
dic={}
242. 有效的字母异位词
383. 赎金信
349. 两个数组的交集
202. 快乐数
454. 四数相加 II
1. 两数之和
链表
链表是一个包含零个或多个元素的数据结构。
定义
class ListNode:
def __init__(self, val, next=None):
self.val = val #节点上存储的元素
self.next = next #指向下一个节点的指针
反转链表
2. 两数相加 递归、迭代
15. 三数之和 双指针、链表法
18. 四数之和 双指针
27. 移除元素
707. 设计链表
206. 反转链表 双指针迭代、递归[K]
(同上)剑指 Offer II 024. 反转链表
92. 反转链表 II
BM3 链表中的节点每k个一组翻转
24. 两两交换链表中的节点 递归[K]、非递归
BM14 链表的奇偶重排 切片
剑指 Offer 25. 合并两个排序的链表
剑指 Offer II 078. 合并k个排序链表
1669. 合并两个链表
203. 移除链表元素
19. 删除链表的倒数第 N 个结 双指针、计算链表长度
剑指 Offer 22. 链表中倒数第k个节点 顺序查找、双指针
面试题 02.02. 返回倒数第 k 个节点
BM8 链表中倒数最后k个结点
面试题 02.07. 链表相交
141. 环形链表
142. 环形链表 II 快慢指针、哈希表
字符串
344. 反转字符串 双指针
①str1.append(str[len(str)-i-1])
return ‘’.join(str1)
541. 反转字符串II
剑指 Offer 05. 替换空格 遍历
151. 颠倒字符串中的单词 使用语言特性
剑指 Offer 58 - II. 左旋转字符串 字符串切片[K]、列表遍历拼接、字符串遍历拼接
28. 实现 strStr() KMP[K]、调函数
BM86 大数加法
mlen = max(len(s), len(t)) # 取两者长度的最大值
# 在两个数字字符串的前面补0 比如’1’.zfill(3)=‘001’
s = s.zfill(mlen)
range( start, end, step),其中start为闭,end为开,正数为正方向(向后遍历)步长。
range(len-1,-1,-1)代表起点是数组最后一个元素,终点是数组第一个元素,每次往前遍历一个元素。
res += str((ord(s[i]) + ord(t[i]) - 96+ carry)%10)
chr的功能与ord函数刚好相反
chr(97)
‘a’
ord(‘a’)
97
return res[::-1] # 最后将res反过来输出
剑指 Offer II 020. 回文子字符串的个数
9. 回文数
s = str(x)
length = len(s)