Leetcode:在线编程网站-各大IT公司的笔试面试题

leetcode 是一个美国的在线编程网站,上面主要收集了各大IT公司的笔试面试题,对于应届毕业生找工作是一个不可多得的好帮手。

这个网站的的好处在于它会告诉你测试数据以及你的输出和正确的输出是什么,方便大家调试学习。目前,只支持C++和Java两种语言。

另外它是支持在线编辑,还提供了一个在线运行环境,可以直接看到运行结果。

另一个很好的地方在于提供了2个独立的代码窗口,分别编译运行。一个自己玩的开发窗口,一个提交代码的窗口,可以在第一个窗口里测试各种拿不准的功能点。

官方网站:http://leetcode.com/


https://github.com/soulmachine/leetcode

http://blog.csdn.net/column/details/leetcode-solution.html


LeetCode题解

PDF下载

LeetCode题解(C++版).pdf

C++ 文件夹下是C++版,内容一摸一样,代码是用C++写的,

Java 文件夹下是Java版,内容一摸一样,代码是用Java写的

LaTeX模板

本书使用的是陈硕开源的模板。这个模板制作精良,很有taste,感谢陈硕 :)

在Windows下编译

  1. 安装Tex Live 2013 http://www.tug.org/texlive/。把bin目录例如D:\texlive\2013\bin\win32加入PATH环境变量。
  2. 安装字体。这个LaTex模板总共使用了9个字体,下载地址 http://pan.baidu.com/s/1gdefYiJ ,有的字体Windows自带了,有的字体Ubuntu自带了,但都不全,还是一次性安装完所有字体比较方便。
  3. 安装TeXstudio http://texstudio.sourceforge.net/
  4. (可选)启动Tex Live Manager,更新所有已安装的软件包。
  5. 配置TeXstudio。

    启动Texstudio,选择 Options-->Configure Texstudio-->Commands,XeLaTex 设置为 xelatex -synctex=1 -interaction=nonstopmode %.tex

    选择 Options-->Configure Texstudio-->Build

    Build & View 由默认的 PDF Chain 改为 Compile & View;

    Default Compiler 由默认的PdfLaTex 修改为 XeLaTex ;

    PDF Viewer 改为 “Internal PDF Viewer(windowed)”,这样预览时会弹出一个独立的窗口,这样比较方便。

  6. 编译。用TeXstudio打开leetcode-cpp.tex,点击界面上的绿色箭头就可以开始编译了。

    在下方的窗口可以看到TeXstudio正在使用的编译命令是xelatex -synctex=1 -interaction=nonstopmode "leetcode-cpp".tex

在Ubuntu下编译

  1. 安装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
    
  2. 安装字体。这个LaTex模板总共使用了9个字体,下载地址 http://pan.baidu.com/s/1gdefYiJ ,有的字体Windows自带了,有的字体Ubuntu自带了,但都不全,还是一次性安装完所有字体比较方便。

  3. 安装TeXstudio http://texstudio.sourceforge.net/
  4. 配置TeXstudio。

    启动Texstudio,选择 Options-->Configure Texstudio-->Commands,XeLaTex 设置为 xelatex -synctex=1 -interaction=nonstopmode %.tex

    选择 Options-->Configure Texstudio-->Build

    Build & View 由默认的 PDF Chain 改为 Compile & View;

    Default Compiler 由默认的PdfLaTex 修改为 XeLaTex ;

    PDF Viewer 改为 “Internal PDF Viewer(windowed)”,这样预览时会弹出一个独立的窗口,这样比较方便。

  5. 编译。用TeXstudio打开leetcode-cpp.tex,点击界面上的绿色箭头就可以开始编译了。

    在下方的窗口可以看到TeXstudio正在使用的编译命令是xelatex -synctex=1 -interaction=nonstopmode "leetcode-cpp".tex

  6. 懒人版镜像。如果不想进行上面繁琐的安装过程,我做好了一个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)