leetcode 是一个美国的在线编程网站,上面主要收集了各大IT公司的笔试面试题,对于应届毕业生找工作是一个不可多得的好帮手。
这个网站的的好处在于它会告诉你测试数据以及你的输出和正确的输出是什么,方便大家调试学习。目前,只支持C++和Java两种语言。
另外它是支持在线编辑,还提供了一个在线运行环境,可以直接看到运行结果。
另一个很好的地方在于提供了2个独立的代码窗口,分别编译运行。一个自己玩的开发窗口,一个提交代码的窗口,可以在第一个窗口里测试各种拿不准的功能点。
官方网站:http://leetcode.com/
https://github.com/soulmachine/leetcode
http://blog.youkuaiyun.com/column/details/leetcode-solution.html
LeetCode题解
PDF下载
C++ 文件夹下是C++版,内容一摸一样,代码是用C++写的,
Java 文件夹下是Java版,内容一摸一样,代码是用Java写的
LaTeX模板
本书使用的是陈硕开源的模板。这个模板制作精良,很有taste,感谢陈硕 :)
在Windows下编译
- 安装Tex Live 2013 http://www.tug.org/texlive/。把bin目录例如
D:\texlive\2013\bin\win32加入PATH环境变量。 - 安装字体。这个LaTex模板总共使用了9个字体,下载地址 http://pan.baidu.com/s/1gdefYiJ ,有的字体Windows自带了,有的字体Ubuntu自带了,但都不全,还是一次性安装完所有字体比较方便。
- 安装TeXstudio http://texstudio.sourceforge.net/
- (可选)启动Tex Live Manager,更新所有已安装的软件包。
-
配置TeXstudio。
启动Texstudio,选择
Options-->Configure Texstudio-->Commands,XeLaTex 设置为xelatex -synctex=1 -interaction=nonstopmode %.tex;选择
Options-->Configure Texstudio-->BuildBuild & View 由默认的 PDF Chain 改为 Compile & View;
Default Compiler 由默认的PdfLaTex 修改为 XeLaTex ;
PDF Viewer 改为 “Internal PDF Viewer(windowed)”,这样预览时会弹出一个独立的窗口,这样比较方便。
-
编译。用TeXstudio打开
leetcode-cpp.tex,点击界面上的绿色箭头就可以开始编译了。在下方的窗口可以看到TeXstudio正在使用的编译命令是
xelatex -synctex=1 -interaction=nonstopmode "leetcode-cpp".tex
在Ubuntu下编译
-
安装Tex Live 2013 http://www.tug.org/texlive/
1.1. 下载TexLive 2013 的ISO 光盘,地址 http://www.tug.org/texlive/acquire-iso.html
1.2 mount 光盘,
sudo ./install-tl开始安装1.3 加入环境变量
sudo vi /etc/profile export PATH=$PATH:/usr/local/texlive/2013/bin/x86_64-linux export MANPATH=$MANPATH:/usr/local/texlive/2013/texmf-dist/doc/man export INFPATH=$INFPATH:/usr/local/texlive/2013/texmf-dist/doc/info -
安装字体。这个LaTex模板总共使用了9个字体,下载地址 http://pan.baidu.com/s/1gdefYiJ ,有的字体Windows自带了,有的字体Ubuntu自带了,但都不全,还是一次性安装完所有字体比较方便。
- 安装TeXstudio http://texstudio.sourceforge.net/
-
配置TeXstudio。
启动Texstudio,选择
Options-->Configure Texstudio-->Commands,XeLaTex 设置为xelatex -synctex=1 -interaction=nonstopmode %.tex;选择
Options-->Configure Texstudio-->BuildBuild & View 由默认的 PDF Chain 改为 Compile & View;
Default Compiler 由默认的PdfLaTex 修改为 XeLaTex ;
PDF Viewer 改为 “Internal PDF Viewer(windowed)”,这样预览时会弹出一个独立的窗口,这样比较方便。
-
编译。用TeXstudio打开
leetcode-cpp.tex,点击界面上的绿色箭头就可以开始编译了。在下方的窗口可以看到TeXstudio正在使用的编译命令是
xelatex -synctex=1 -interaction=nonstopmode "leetcode-cpp".tex - 懒人版镜像。如果不想进行上面繁琐的安装过程,我做好了一个Ubuntu VMware虚拟机镜像,已经装好了TexLive 2013, TexStudio和字体(详细的安装日志见压缩包注释),开箱即用,下载地址 http://pan.baidu.com/s/1jGj5uQi。
如何贡献代码
编译通过后,就具备了完整的LaTeX编译环境了。
本书模板已经写好了,基本上不需要很多LaTeX知识就可以动手了。
欢迎给本书添加内容或纠正错误,在自己本地编译成PDF,预览没问题后,就可以发pull request过来了。
北美求职微博群
我和我的小伙伴们在这里:http://q.weibo.com/1312378
| 题目 | 算法 | 数据结构 | 注意事项 |
| 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 |
本文详细介绍LeetCode网站特点及优势,并提供题解资源下载,涵盖多种算法与数据结构题目,包括二叉树、链表、字符串等类型的题目解析。
1443

被折叠的 条评论
为什么被折叠?



