LeetCodeTop100 题目
1 两数之和 42.20% Easy
2 两数相加 30.70% Medium
3 无重复字符的最长子串 28.00% Medium
4 寻找两个有序数组的中位数 25.60% Hard
5 最长回文子串 26.70% Medium
10 正则表达式匹配 25.00% Hard
11 盛最多水的容器 42.80% Medium
15 三数之和 23.50% Medium
17 电话号码的字母组合 40.50% Medium
19 删除链表的倒数第N个节点 34.00% Medium
20 有效的括号 36.00% Easy
21 合并两个有序链表 46.00% Easy
22 括号生成 53.30% Medium
23 合并K个排序链表 33.10% Hard
31 下一个排列 30.10% Medium
32 最长有效括号 25.00% Hard
33 搜索旋转排序数组 32.70% Medium
34 在排序数组中查找元素的第一个和最后一个位置 33.00% Medium
39 组合总和 46.90% Medium
42 接雨水 42.00% Hard
46 全排列 53.60% Medium
48 旋转图像 47.00% Medium
49 字母异位词分组 45.00% Medium
53 最大子序和 42.90% Easy
55 Jump Game 31.40% Medium
56 合并区间 34.90% Medium
62 不同路径 46.50% Medium
64 最小路径和 45.70% Medium
70 爬楼梯 43.50% Easy
72 编辑距离 36.50% Hard
75 颜色分类 41.40% Medium
76 最小窗口字串 29.90% Hard
78 子集 51.20% Medium
79 单词搜索 30.50% Medium
84 柱状图中最大的矩形 30.30% Hard
85 最大矩形 32.50% Hard
94 二叉树的中序遍历 55.20% Medium
96 不同的二叉搜索树 45.20% Medium
98 验证二叉搜索树 25.30% Medium
101 对称二叉树 42.80% Easy
102 二叉树的层次遍历 47.20% Medium
104 二叉树的最大深度 59.30% Easy
105 从前序与中序遍历序列构造二叉树 39.60% Medium
114 二叉树展开为链表 41.20% Medium
121 买卖股票的最佳时机 46.30% Easy
124 求二叉树的最大路径和 29.40% Hard
128 最长连续序列 41.00% Hard
136 只出现一次的数字 59.10% Easy
139 单词拆分 34.40% Medium
141 环形链表 35.90% Easy
142 环形链表 II 31.00% Medium
146 LRU缓存机制 24.20% Medium
148 排序链表 34.10% Medium
152 乘积最大子序列 28.60% Medium
155 最小栈 35.80% Easy
160 相交链表 32.40% Easy
169 求众数 51.60% Easy
198 打家劫舍 40.80% Easy
200 岛屿的个数 40.40% Medium
206 反转链表 52.90% Easy
207 课程表 36.80% Medium
208 实现 Trie (前缀树) 36.90% Medium
215 数组中的第K个最大元素 46.20% Medium
221 最大正方形 32.30% Medium
226 翻转二叉树 57.10% Easy
234 回文链表 35.40% Easy
236 二叉树的最近公共祖先 35.60% Medium
238 除自身以外数组的乘积 54.00% Medium
239 滑动窗口最大值 37.20% Hard
240 搜索二维矩阵 II 40.30% Medium
253 会议室 II 42.30% Medium
279 完全平方数 41.00% Medium
283 移动零 53.70% Easy
287 寻找重复数 48.50% Medium
297 二叉树的序列化和反序列化 39.50% Hard
300 最长上升子序列 40.30% Medium
301 移除非法括号 38.50% Hard
309 最佳买卖股票时机含冷冻期 43.50% Medium
312 打气球游戏 46.40% Hard
322 零钱兑换 29.20% Medium
337 题目337.打家劫舍之三 47.40% Medium
338 比特位计数 64.00% Medium
347 前K个高频元素 53.60% Medium
394 解码字符串 44.00% Medium
399 除法求值 47.40% Medium
406 题目406.根据身高重建队列 59.00% Medium
416 题目416.分割等和子集 40.00% Medium
437 二叉树中和为某一值的路径三 42.00% Easy
438 找到字符串中所有字母异位词 36.50% Easy
448 找到所有数组中消失的数字 52.80% Easy
461 汉明距离 70.10% Easy
494 目标和 44.90% Medium
538 把二叉搜索树转换为累加树 50.00% Easy
543 二叉树的直径 46.20% Easy
560 和为K的子数组 41.70% Medium
581 最短无序连续子数组 29.60% Easy
617 合并二叉树 69.30% Easy
621 Task Scheduler 44.50% Medium
647 回文子串 56.00% Medium
739 每日温度 59.80% Medium
771 珠宝和石头 83.00% Easy
自我总结
1.反转链表:
class Solution: # 返回ListNode def ReverseList(self, pHead): # write code here if pHead == None or pHead.next == None:#若链表为空或只有一个数就直接返回0 return pHead pre = None#定义一个空链表 while pHead: nex = pHead.next pHead.next = pre pre = pHead#指针后移 pHead = nex#指针后移 return pre
2.数组排序 可直接return sorted(arr)
class Solution: def MySort(self , arr ): len_1 = len(arr) list_1 = [] for i in range(len_1): list_1.append(arr[i]) list_1.sort() return list_1
3.判断链表是否有环
class Solution: def hasCycle(self , head ): # write code here if head is None or head.next is None: return False first = head.next last = head.next.next while last is not None: if first.val == last.val: return True first = first.next if last.next is None or last.next.next is None: return False last = last.next.next return False
4.分别按照二叉树先序,中序和后序打印所有的节点。
class Solution: def threeOrders(self , root ): ans = [[],[],[]] def dfs(root): if not root: return ans[0].append(root.val) dfs(root.left) ans[1].append(root.val) dfs(root.right) ans[2].append(root.val) return dfs(root) return ans
5.二分查找
class Solution: def upper_bound_(self , n , v , a ): # write code here if a[-1]<v: return n+1 left = 0 right = n-1 while left<right: mid = (left+right)//2 if a[mid]>=v: right = mid if a[mid]<v: left = mid+1 return left+1