leetcode-习题总结

字符串

14

求一堆字符串的最长公共前缀

线性表

11. Container With Most Water

15

3Sum

125

判断一个字符串是否为回文

168

10进制转26进制

位运算

136

找唯一的单身狗

137

类似于上一题,一个数组中的元素,除了一个元素外,都是三个三个的重复出现,要求这个元素的值。

191

896

判断数组是否为单调的

链表

141

判断一个链表是否有环。

142

如果一个链表有环,返回这个链表的环的入口。

143

把一个 L0→L1→…→Ln-1→Ln 的链表变成 L0→Ln→L1→Ln-1→L2→Ln-2

146

实现 LRU

147

按照顺序构建链表

148

对链表进行排序

876

找链表的中间位置

917

双指针问题

925

双指针问题

225. Implement Stack using Queues :stack:queues:

使用队列实现堆栈

队列

二叉树

98

判断一棵树是否为二叉搜索树

99

恢复二叉搜索树

100. Same Tree

判断两颗二叉树是否相同。

101. Symmetric Tree

判断一颗二叉树是否是对称的。

102. Binary Tree Level Order Traversal

层次遍历二叉树。

103. Binary Tree Zigzag Level Order Traversal

层次遍历二叉树,但是是蛇形的。

104. Maximum Depth of Binary Tree

求一颗二叉树的最大深度。几乎一样的题目还有 111. Minimum Depth of Binary Tree

105. Construct Binary Tree from Preorder and Inorder Traversal

根据先序遍历和中序遍历的结果构建二叉树。

106. Construct Binary Tree from Inorder and Postorder Traversal

根据中序遍历和后续遍历的结果构建二叉树。

107. Binary Tree Level Order Traversal II

层次遍历,返回结果是从最下面一层到最上面一层。

108. Convert Sorted Array to Binary Search Tree

把一个递增数组转换成二叉搜索树。

109. Convert Sorted List to Binary Search Tree

把一个递增链表转换成二叉搜索树。跟上面那道题类似,不过需要用快慢指针找到中间的节点。

110. Balanced Binary Tree

判断一棵树是不是平衡二叉树

113. Path Sum II

在一颗二叉树中找出所有节点值的和等于 sum 的路径。

124

129

144

先序遍历二叉树

144

后序遍历二叉树

173

实现一个二叉搜索树遍历器

199

bfs

501

求二叉搜索树的众数

872

先序,中序,后序遍历都可以。

889

根据前序遍历和后序遍历结果构建二叉树

897

中序遍历二叉树

993

判断两个子树是否为堂兄弟节点

1008. Construct Binary Search Tree from Preorder Traversal

根据先序遍历的结果构建二叉树。

1022. Sum of Root To Leaf Binary Numbers

求所有根节点到叶子节点的路径之和。

线段树

427. Construct Quad Tree

leetcode-215-Kth-Largest-Element-in-an-Array

leetcode-973-K-Closest-Points-to-Origin

leetcode-1046-Last-Stone-Weight

最大堆的应用


二叉堆,四叉堆
堆可以用来实现 定时器

dfs

841. Keys and Rooms

排序

归并排序

TODO

暴力枚举

深度优先算法

广度优先算法

分治法

leetcode-23-Merge-k-Sorted-Lists

leetcode-169-Majority-Element

贪心法

122

哈希表

893

根据字符串的字符组成进行分组

890

884

找 uncommon word

动态规划

leetcode-53-Maximum-Subarray

121

139

198

maxv[i] = max(maxv[i-2]+nums[i], maxv[i-1]);

Resources