开发者社区> sky-heaven> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

LeetCode总结【转】

简介: 转自:http://blog.csdn.net/lanxu_yy/article/details/17848219 版权声明:本文为博主原创文章,未经博主允许不得转载。 最近完成了www.leetcode.com的online judge中151道算法题目。
+关注继续查看

转自:http://blog.csdn.net/lanxu_yy/article/details/17848219

版权声明:本文为博主原创文章,未经博主允许不得转载。

最近完成了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
【作者】张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【LeetCode】这么简单的题,豆编又不会!
【LeetCode】这么简单的题,豆编又不会!
0 0
leetcode
在排序数组中查找元素的第一个和最后一个位置
0 0
leetcode第50题
求幂次方,用最简单的想法,就是写一个 for 循环累乘。 至于求负幂次方,比如 2^{-10}2−10,可以先求出 2^{10}210,然后取倒数,1/2^{10}1/210 ,就可以了 double mul = 1; if (n > 0) { for (int i = 0; i < n; i++) { mul *= x; } } else { n = -n; for (int i = 0; i < n; i++) { mul *= x; } mul = 1 / mul; }
0 0
leetcode第47题
基本上都是在上道题的基础上改出来了,一些技巧也是经常遇到,比如先排序,然后判断和前一个是否重复。利用 Hash 去重的功能。利用原来的存储空间隐藏掉数据,然后再想办法还原。
0 0
leetcode第42题
也就是红色区域中的水, 数组是 height = [ 0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1 ] 。 原则是高度小于 2,temp ++,高度大于等于 2,ans = ans + temp,temp = 0。 temp 初始化为 0 ,ans 此时等于 2。 height [ 0 ] 等于 0 < 2,不更新。 height [ 1 ] 等于 1 < 2,不更新。 height [ 2 ] 等于 0 < 2, 不更新。 height [ 3 ] 等于 2 >= 2, 开始更新 height [ 4 ] 等于 1 < 2,temp = temp + 1 = 1。 h
0 0
leetcode第32题
这几种算法,暴力破解和动态规划我觉得想的话,还是能分析出来的话,最后两种算法感觉是去挖掘题的本质得到的算法,普适性不是很强。但最后一种算法,从左到右,从右到左,是真的强。
0 0
leetcode第20题
括号匹配问题。 如果只有一种括号,我们完全可以用一个计数器 count ,遍历整个字符串,遇到左括号加 1 ,遇到右括号减 1,遍历结束后,如果 count 等于 0 ,则表示全部匹配。但如果有多种括号,像 ( [ ) ] 这种情况它依旧会得到 0,所以我们需要用其他的方法。 栈! 遍历整个字符串,遇到左括号就入栈,然后遇到和栈顶对应的右括号就出栈,遍历结束后,如果栈为空,就表示全部匹配。
0 0
leetcode第10题
上边的递归,为了方便理解,简化下思路。 为了判断 text [ 0,len ] 的情况,需要知道 text [ 1,len ] 为了判断 text [ 1,len ] 的情况,需要知道 text [ 2,len ] 为了判断 text [ 2,len ] 的情况,需要知道 text [ 3,len ] ... 为了判断 text [ len - 1,len ] 的情况,需要知道 text [ len,len ] text [ len,len ] 肯定好求 求出 text [ len,len ] 的情况,就知道了 text [ len - 1,len ] 求出 text [ le
0 0
leetcode第14题
我们把原来的数组分成两部分,求出左半部分的最长公共前缀,求出右半部分的最长公共前缀,然后求出的两个结果再求最长公共前缀,就是最后的结果了。 求左半部分的最长公共前缀,我们可以继续把它分成两部分,按照上边的思路接着求。然后一直分成两部分,递归下去。 直到该部分只有 1 个字符串,那么最长公共子串就是它本身了,直接返回就可以了。
0 0
[LeetCode] Walls and Gates
Problem Description: You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstacle.
479 0
+关注
sky-heaven
我是一个技术爱好者,喜欢分享交流技术心得
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载