最近完成了www.leetcode.com的online judge中151道算法题目。除各个题目有特殊巧妙的解法以外,大部分题目都是经典的算法或者数据结构,因此做了如下小结,具体的解题思路可以搜索我的博客:LeetCode题解

题目    算法    数据结构    注意事项
Clone Graph    BFS    哈希表
Word Ladder II    BFS    哈希表
Surrounded Regions    BFS    矩阵
Word Ladder    BFS    N/A
Binary Tree Level Order Traversal    BFS|前序遍历    队列
Binary Tree Level Order Traversal II    BFS|前序遍历    队列
Binary Tree Zigzag Level Order Traversal     BFS|前序遍历    队列    每一层顺序分别对待
Implement strStr()    KMP算法    N/A
Copy List with Random Pointer    N/A    哈希表
Remove Duplicates from Sorted Array    N/A    哈希表
Remove Duplicates from Sorted Array II    N/A    哈希表
Set Matrix Zeroes    N/A    哈希表
Anagrams    N/A    哈希表
First Missing Positive    N/A    哈希表
Two Sum    N/A    哈希表
Evaluate Reverse Polish Notation    N/A    堆栈
Largest Rectangle in Histogram    N/A    堆栈    记录重要位置
Minimum Window Substring    N/A    堆栈
Simplify Path    N/A    堆栈
Longest Valid Parentheses    N/A    堆栈
Valid Parentheses    N/A    堆栈    词法分析
Container With Most Water    N/A    堆栈    记录重要位置
Reverse Words in a String    N/A    堆栈    翻转字符串
Best Time to Buy and Sell Stock    N/A    数组
Best Time to Buy and Sell Stock II    N/A    数组
Best Time to Buy and Sell Stock III    N/A    数组
Length of Last Word    N/A    数组
Search Insert Position    N/A    数组
Search for a Range    N/A    数组
Spiral Matrix    N/A    矩阵    简化为子问题
Spiral Matrix II    N/A    矩阵    简化为子问题
LRU Cache    N/A    链表
Reorder List    N/A    链表    快慢指针&链表倒序
Linked List Cycle    N/A    链表    快慢指针
Linked List Cycle II    N/A    链表    快慢指针
Reverse Linked List II    N/A    链表
Partition List    N/A    链表
Remove Duplicates from Sorted List    N/A    链表
Remove Duplicates from Sorted List II    N/A    链表
Merge Two Sorted Lists    N/A    链表
Rotate List    N/A    链表    快慢指针
Reverse Nodes in k-Group    N/A    链表
Swap Nodes in Pairs    N/A    链表
Remove Nth Node From End of List    N/A    链表    快慢指针
Text Justification    N/A    队列
Candy    N/A    N/A    简化为子问题
Valid Palindrome    N/A    N/A    首尾指针
Plus One    N/A    N/A    模拟加法运算
Valid Number    N/A    N/A    词法分析
Add Binary    N/A    N/A    模拟加法运算
Insert Interval    N/A    N/A
Merge Intervals    N/A    N/A
Multiply Strings    N/A    N/A    模拟乘法运算
Trapping Rain Water    N/A    N/A
Valid Sudoku    N/A    N/A
Roman to Integer    N/A    N/A
Integer to Roman    N/A    N/A
Palindrome Number    N/A    N/A
Reverse Integer    N/A    N/A
ZigZag Conversion    N/A    N/A
Add Two Numbers    N/A    N/A    模拟加法运算
Median of Two Sorted Arrays    N/A    N/A
String to Integer (atoi)    STL函数    N/A
Next Permutation    STL经典算法    N/A
Recover Binary Search Tree    中序遍历    二叉树
3Sum    二分查找    N/A
3Sum Closest    二分查找    N/A
4Sum    二分查找    N/A
Single Number    位运算    N/A
Single Number II    位运算    N/A
Construct Binary Tree from Preorder and Inorder Traversal    前序中序遍历    N/A
Binary Tree Preorder Traversal    前序遍历    二叉树
Flatten Binary Tree to Linked List    前序遍历    二叉树
Interleaving String    动态规划    二叉树
Unique Binary Search Trees    动态规划    二叉树
Word Break    动态规划    N/A
Word Break II    动态规划    N/A
Palindrome Partitioning    动态规划    N/A
Palindrome Partitioning II    动态规划    N/A
Triangle    动态规划    N/A
Distinct Subsequences    动态规划    N/A
Decode Ways    动态规划    N/A
Scramble String    动态规划    N/A
Maximal Rectangle    动态规划    N/A
Edit Distance    动态规划    N/A
Climbing Stairs    动态规划    N/A
Minimum Path Sum    动态规划    N/A
Unique Paths    动态规划    N/A
Unique Paths II    动态规划    N/A
Jump Game    动态规划    N/A
Jump Game II    动态规划    N/A
Maximum Subarray    动态规划    N/A
Wildcard Matching    动态规划    N/A
Substring with Concatenation of All Words    动态规划    N/A
Sort List    合并排序    链表    快慢指针
Merge Sorted Array    合并排序    N/A
Construct Binary Tree from Inorder and Postorder Traversal    后序中序遍历    N/A
Binary Tree Postorder Traversal    后续遍历    二叉树
Combinations    回溯    N/A
Permutation Sequence    回溯    N/A
N-Queens    回溯    N/A
N-Queens II    回溯    N/A
Permutations    回溯    N/A
Permutations II    回溯    N/A
Combination Sum    回溯    N/A
Combination Sum II    回溯    N/A
Sudoku Solver    回溯    N/A
Longest Substring Without Repeating Characters    回溯    N/A
Max Points on a Line    循环遍历    N/A    排除相同的点
Longest Common Prefix    循环遍历    N/A
Longest Palindromic Substring    循环遍历    N/A
Insertion Sort List    插入排序    链表
Rotate Image    矢量旋转与平移    N/A
Longest Consecutive Sequence    类BFS    哈希表
Search in Rotated Sorted Array    类二分查找    N/A
Search in Rotated Sorted Array II    类二分查找    N/A    特殊考虑相等数据
Sqrt(x)    类二分查找    N/A
Pow(x, n)    类二进制    N/A
Divide Two Integers    类二进制    N/A
Gas Station    类合并排序    N/A
Merge k Sorted Lists    类外排序    N/A
Sort Colors    类快速排序    N/A
Remove Element    类快速排序    N/A
Search a 2D Matrix    类杨氏矩阵    N/A
Restore IP Addresses    背包问题    N/A
Sum Root to Leaf Numbers    递归    二叉树
Binary Tree Maximum Path Sum    递归    二叉树
opulating Next Right Pointers in Each Node    递归    二叉树
Populating Next Right Pointers in Each Node II    递归    二叉树
Path Sum    递归    二叉树
Path Sum II    递归    二叉树
Maximum Depth of Binary Tree     递归    二叉树
Minimum Depth of Binary Tree    递归    二叉树
Balanced Binary Tree    递归    二叉树
Symmetric Tree    递归    二叉树
Same Tree     递归    二叉树
Validate Binary Search Tree    递归    二叉树
Unique Binary Search Trees II    递归    二叉树
Binary Tree Inorder Traversal    递归    二叉树
Pascal's Triangle    递归    N/A
Pascal's Triangle II    递归    N/A
Convert Sorted List to Binary Search Tree    递归    N/A    快慢指针&反中序遍历
Convert Sorted Array to Binary Search Tree    递归    N/A    反中序遍历
Subsets    递归    N/A
Subsets II    递归    N/A
Gray Code    递归    N/A
Word Search    递归    N/A
Count and Say    递归    N/A
Generate Parentheses    递归    N/A
Letter Combinations of a Phone Number    递归    N/A
Regular Expression Matching    递归    N/A

--------------------- 
作者:Allanxl