Skip to content

Commit 6f70f50

Browse files
authored
Merge pull request labuladong#1 from labuladong/english
Keep forking
2 parents 54c2694 + 1ccf2e3 commit 6f70f50

File tree

304 files changed

+8755
-7838
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

304 files changed

+8755
-7838
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/translate.md

Lines changed: 0 additions & 23 deletions
This file was deleted.

README.md

Lines changed: 93 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,93 @@
1-
感谢各位老铁前来参与翻译!
2-
3-
请查看最新的 `english` 分支,保证你准备翻译的文章暂时没有英文版本。
4-
5-
翻译完成后,请删除文末的公众号二维码。对于第一个提交的翻译版本,你可以在文章开头的**一级标题下方**添加作者和翻译者:
6-
7-
**Translator: [YourName](https://github.com/YourName)**
8-
9-
**Author: [labuladong](https://github.com/labuladong)**
10-
11-
你的链接可以指向任何你希望的地方。
12-
13-
### 翻译约定
14-
15-
1、翻译尽可能表达中文原意,你对基本的专业术语应该做到正确地使用,诸如 Queue, stack, binary tree 等词语。这种词语用错会让人很迷惑。基本的语法不能出错,建议搜索一些英语语法检查的在线网站,**或者最简单的,翻译后将你的文本粘贴到 Word 中,查看是否有基本的语法错误**
16-
17-
2、**所有内容应以 `master` 分支为准**,因为 `english` 分支仅作为翻译,不会更新文章。所以如果你发现 `master` 中的某一篇文章在 `english` 分支中不存在或有冲突,以 `master` 分支中的 md 文件为准进行翻译,别忘了把相关图片文件夹加入 `english` 分支。
18-
19-
3、**加粗等信息需要保留,同时鼓励扩展自己的知识**,增加参考文献,将重要知识点添加粗体或使用英语(或其他语言)特有的表达形式来表达某些思想。
20-
21-
4、对于图片,很少包含汉字,如果不影响理解,比如图片右下角的公众号水印,就不必修改了。**如果汉字涉及算法理解,需要把图片一同修改了**,把汉字抹掉换成英文,或者汉字比较少的话,在汉字旁添加对应英文。**对于一些描述题目的图片**,都是我在中文版 LeetCode 上截的图,你可以去英文版 LeetCode 上寻找对应题目截图替换,如果不知道是哪一题,可以要求我给你找。
22-
23-
5、**保持原有的目录结构,但文件和文件夹的名称应改为英文**,md 文件的名称根据具体文章内容修改成恰当的英文,文章引用的图片路径有时也会包含中文,需要你将装有该图片的文件夹改成适当的英文。
24-
25-
6、**只处理在 issue 中约定的文章(和相关的图片),不要动其他任何的内容**,否则后续你对主仓库提交成果的时候,容易出现冲突。如果出现冲突,你需要先想办法使用 Git 工具解决本地仓库和主仓库的版本冲突才能提交 pull request,练习 Git 的使用是非常重要的。
26-
27-
其实咱们刷的算法题都没有什么特别生僻的英文单词,而且很多歪果仁母语也不一定是英文。Google Translator 翻译带点术语(栈、队列这种)的文章效果很差,甚至代码都给你翻译,所以不要害怕,勇敢地翻就行了,我们会在一次次迭代中慢慢变好的~
28-
29-
Github 具体的协作方式我在仓库置顶的 [issue](https://github.com/labuladong/fucking-algorithm/issues/9) 中有写,很简单,如果你之前没有协作过,这次翻译工作更是你对新事物的尝试和学习机会。不要害怕,Git 仓库的一切都是可以恢复的,不会出现操作不熟练而搞砸,**放开手干就完事儿了**
30-
31-
PS:另外再强调一下,不要修改 issue 中约定的之外的文章,以便你的仓库后续合并进主仓库,提交你的分支也需要提交到 `english` 分支,翻译工作不要向 `master` 分支提交任何修改。
32-
33-
**Become a contributor, 奥利给**
1+
English translation is still processing... Some articles are still in Chinese, but most are completed. Please **star** this repo, when you come back soon, translation will finish perfectly. Just enjoy.
2+
3+
These articles are somehow kinds of **Algorithmic Thinking**. All based on LeetCode problems, but **NOT ONLY the code of solution, but also WHY writing code this way, HOW we figure it out.**
4+
5+
I don't like one liner and confusing, I like clear and easy-understanding.
6+
7+
**Gitbook** has deployed, will sync with this branch of the repo: https://labuladong.gitbook.io/algo-en/
8+
9+
If you want to clone this repo, please use following command:
10+
11+
```shell
12+
git clone --depth 1 --branch english https://github.com/labuladong/fucking-algorithm.git
13+
```
14+
This command specifies the `english` branch and limit the depth of clone, get rid of the Git commit history, which can be faster to clone.
15+
16+
# Table of Content
17+
18+
* I. High Frequency Interview Problem
19+
* [How to Implement LRU Cache](interview/LRU_algorithm.md)
20+
* [How to Find Prime Number Efficiently](interview/Print_PrimeNumbers.md)
21+
* [How to Calculate Minimium Edit Distance](dynamic_programming/EditDistance.md)
22+
* [How to Solve Drop Water Problem](interview/Trapping_Rain_Water.md)
23+
* [How to Remove Duplicate From Sorted Sequence](interview/RemoveDuplicatesfromSortedArray.md)
24+
* [How to Find Longest Palindromic Substring](interview/TheLongestPalindromicSubstring.md)
25+
* [How to Reverse Linked List in K Group](interview/reverse-nodes-in-k-group.md)
26+
* [How to Check the Validation of Parenthesis](interview/valid-parentheses.md)
27+
* [How to Find Missing Element](interview/missing_elements.md)
28+
* [How to Pick Elements From a Arbitrary Sequence](interview/ReservoirSampling.md)
29+
* [How to use Binary Search](interview/UsingBinarySearchAlgorithm.md)
30+
* [How to Scheduling Seats](interview/Seatscheduling.md)
31+
* [Union-Find Algorithm in Detail](think_like_computer/Union-find-Explanation.md)
32+
* [Union-Find Application](think_like_computer/Union-Find-Application.md)
33+
* [Find Sebesquence With Binary Search](interview/findSebesquenceWithBinarySearch.md)
34+
* [Problems can be sloved by one line](interview/one-line-code-puzzles.md)
35+
* [How to Find Dup and Missing Element](interview/Find-Duplicate-and-Missing-Element.md)
36+
* [How to Check Palindrom LinkedList](interview/check_palindromic_linkedlist.md)
37+
38+
* II. Data Structure
39+
* [Binary Head and Priority Queue](data_structure/binary_heap_implements_priority_queues.md)
40+
* [LRU Cache Strategy in Detial](interview/LRU_algorithm.md)
41+
* [Collections of Binary Search Operations](data_structure/The_Manipulation_Collection_of_Binary_Search_Tree.md)
42+
* [Special Data Structure: Monotonic Stack](data_structure/MonotonicStack.md)
43+
* [Special Data Structure: Monotonic Stack](data_structure/Monotonic_queue.md)
44+
* [Design Twitter](data_structure/design_Twitter.md)
45+
* [Reverse Part of Linked List via Recursion](data_structure/reverse_part_of_a_linked_list_via_recursion.md)
46+
* [What's the Best Algo Book](think_like_computer/why_i_recommend_algs4.md)
47+
* [Queue Implement Stack/Stack implement Queue](data_structure/ImplementQueueUsingStacksImplementStackUsingQueues.md)
48+
* [学习算法和刷题的思路指南](think_like_computer/学习数据结构和算法的高效方法.md)
49+
50+
* III. Algorithmic thinking
51+
* [My Way to Learn Algorithm](think_like_computer/ThewaytoAlgorithmlearning.md)
52+
* [The Framwork of Backtracking Algorithm](think_like_computer/DetailsaboutBacktracking.md)
53+
* [Binary Search in Detial](think_like_computer/DetailedBinarySearch.md)
54+
* [The Tech of Double Pointer](think_like_computer/double_pointer.md)
55+
* [The Key Concept of TowSum Problems](think_like_computer/The_key_to_resolving_TwoSum_problems.md)
56+
* [Divide Complicated Problem: Implement a Calculator](data_structure/Implementing_the_functions_of_a_calculator.md)
57+
* [Prefix Sum Skill](think_like_computer/prefix_sum.md)
58+
* [FloodFill Algorithm in Detail](think_like_computer/flood_fill.md)
59+
* [Interval Scheduling: Interval Merging](think_like_computer/IntervalMerging.md)
60+
* [Interval Scheduling: Intersections of Intervals](think_like_computer/IntervalIntersection.md)
61+
* [String Multiplication](think_like_computer/string_multiplication.md)
62+
* [Pancake Soring Algorithm](think_like_computer/PancakesSorting.md)
63+
* [Sliding Window Algorithm](think_like_computer/SlidingWindowTechnique.md)
64+
* [Some Useful Bit Manipulations](think_like_computer/CommonBitManipulation.md)
65+
* [Russian Doll Envelopes Problem](think_like_computer/RussianDollEnvelopes.md)
66+
* [回溯算法团灭排列、组合、子集问题](interview/子集排列组合.md)
67+
* [几个反直觉的概率问题](think_like_computer/几个反直觉的概率问题.md)
68+
* [洗牌算法](think_like_computer/洗牌算法.md)
69+
* [递归详解](think_like_computer/递归详解.md)
70+
71+
* IV. Dynamic Programming
72+
* [Classic DP: Edit Distance](dynamic_programming/EditDistance.md)
73+
* [Classic DP: Super Egg](dynamic_programming/ThrowingEggsinHighBuildings.md)
74+
* [Classic DP: Super Egg(Advanced Solution)](dynamic_programming/SuperEggDropAdvanced.md)
75+
* [Class DP: Longest Common Subsequence](dynamic_programming/LongestCommonSubsequence.md)
76+
* [Classis DP: Game Problems](dynamic_programming/GameProblemsInDynamicProgramming.md)
77+
* [Regular Expression](dynamic_programming/RegularExpression.md)
78+
* [The Strategies of Subsequence Problem](dynamic_programming/StrategiesForSubsequenceProblem.md)
79+
* [Greedy: Interval Scheduling](dynamic_programming/IntervalScheduling.md)
80+
* [4 Keys Keyboard](dynamic_programming/FourKeysKeyboard.md)
81+
* [What is DP Optimal Substructure](dynamic_programming/OptimalSubstructure.md)
82+
* [动态规划详解](dynamic_programming/动态规划详解进阶.md)
83+
* [动态规划设计:最长递增子序列](dynamic_programming/动态规划设计:最长递增子序列.md)
84+
* [动态规划之KMP字符匹配算法](dynamic_programming/动态规划之KMP字符匹配算法.md)
85+
* [团灭 LeetCode 股票买卖问题](dynamic_programming/团灭股票问题.md)
86+
* [团灭 LeetCode 打家劫舍问题](dynamic_programming/抢房子.md)
87+
88+
* V. Common Knowledge
89+
* [Difference Between Process and Thread in Linux](common_knowledge/linuxProcess.md)
90+
* [You Must Know About Linux Shell](common_knowledge/linuxshell.md)
91+
* [You Must Know About Cookie and Session](common_knowledge/SessionAndCookie.md)
92+
* [Cryptology Algorithm](common_knowledge/Cryptology.md)
93+
* [Some Good Online Pratice Platforms](common_knowledge/OnlinePraticePlatform.md)

SUMMARY.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Summary
2+
3+
* [Introduction](README.md)
4+
5+
* I. High Frequency Interview Problem
6+
* [How to Implement LRU Cache](interview/LRU_algorithm.md)
7+
* [How to Find Prime Number Efficiently](interview/Print_PrimeNumbers.md)
8+
* [How to Calculate Minimium Edit Distance](dynamic_programming/EditDistance.md)
9+
* [How to Solve Drop Water Problem](interview/Trapping_Rain_Water.md)
10+
* [How to Remove Duplicate From Sorted Sequence](interview/RemoveDuplicatesfromSortedArray.md)
11+
* [How to Find Longest Palindromic Substring](interview/TheLongestPalindromicSubstring.md)
12+
* [How to Reverse Linked List in K Group](interview/reverse-nodes-in-k-group.md)
13+
* [How to Check the Validation of Parenthesis](interview/valid-parentheses.md)
14+
* [How to Find Missing Element](interview/missing_elements.md)
15+
* [How to Pick Elements From a Arbitrary Sequence](interview/ReservoirSampling.md)
16+
* [How to use Binary Search](interview/UsingBinarySearchAlgorithm.md)
17+
* [How to Scheduling Seats](interview/Seatscheduling.md)
18+
* [Union-Find Algorithm in Detail](think_like_computer/Union-find-Explanation.md)
19+
* [Union-Find Application](think_like_computer/Union-Find-Application.md)
20+
* [Find Sebesquence With Binary Search](interview/findSebesquenceWithBinarySearch.md)
21+
* [Problems can be sloved by one line](interview/one-line-code-puzzles.md)
22+
* [How to Find Dup and Missing Element](interview/Find-Duplicate-and-Missing-Element.md)
23+
* [How to Check Palindrom LinkedList](interview/check_palindromic_linkedlist.md)
24+
25+
* II. Data Structure
26+
* [Binary Head and Priority Queue](data_structure/binary_heap_implements_priority_queues.md)
27+
* [LRU Cache Strategy in Detial](interview/LRU_algorithm.md)
28+
* [Collections of Binary Search Operations](data_structure/The_Manipulation_Collection_of_Binary_Search_Tree.md)
29+
* [Special Data Structure: Monotonic Stack](data_structure/MonotonicStack.md)
30+
* [Special Data Structure: Monotonic Stack](data_structure/Monotonic_queue.md)
31+
* [Design Twitter](data_structure/design_Twitter.md)
32+
* [Reverse Part of Linked List via Recursion](data_structure/reverse_part_of_a_linked_list_via_recursion.md)
33+
* [What's the Best Algo Book](think_like_computer/why_i_recommend_algs4.md)
34+
* [Queue Implement Stack/Stack implement Queue](data_structure/ImplementQueueUsingStacksImplementStackUsingQueues.md)
35+
* [学习算法和刷题的思路指南](think_like_computer/学习数据结构和算法的高效方法.md)
36+
37+
* III. Algorithmic thinking
38+
* [My Way to Learn Algorithm](think_like_computer/ThewaytoAlgorithmlearning.md)
39+
* [The Framwork of Backtracking Algorithm](think_like_computer/DetailsaboutBacktracking.md)
40+
* [Binary Search in Detial](think_like_computer/DetailedBinarySearch.md)
41+
* [The Tech of Double Pointer](think_like_computer/double_pointer.md)
42+
* [The Key Concept of TowSum Problems](think_like_computer/The_key_to_resolving_TwoSum_problems.md)
43+
* [Divide Complicated Problem: Implement a Calculator](data_structure/Implementing_the_functions_of_a_calculator.md)
44+
* [Prefix Sum Skill](think_like_computer/prefix_sum.md)
45+
* [FloodFill Algorithm in Detail](think_like_computer/flood_fill.md)
46+
* [Interval Scheduling: Interval Merging](think_like_computer/IntervalMerging.md)
47+
* [Interval Scheduling: Intersections of Intervals](think_like_computer/IntervalIntersection.md)
48+
* [String Multiplication](think_like_computer/string_multiplication.md)
49+
* [Pancake Soring Algorithm](think_like_computer/PancakesSorting.md)
50+
* [Sliding Window Algorithm](think_like_computer/SlidingWindowTechnique.md)
51+
* [Some Useful Bit Manipulations](think_like_computer/CommonBitManipulation.md)
52+
* [Russian Doll Envelopes Problem](think_like_computer/RussianDollEnvelopes.md)
53+
* [回溯算法团灭排列、组合、子集问题](interview/子集排列组合.md)
54+
* [几个反直觉的概率问题](think_like_computer/几个反直觉的概率问题.md)
55+
* [洗牌算法](think_like_computer/洗牌算法.md)
56+
* [递归详解](think_like_computer/递归详解.md)
57+
58+
* IV. Dynamic Programming
59+
* [Classic DP: Edit Distance](dynamic_programming/EditDistance.md)
60+
* [Classic DP: Super Egg](dynamic_programming/ThrowingEggsinHighBuildings.md)
61+
* [Classic DP: Super Egg(Advanced Solution)](dynamic_programming/SuperEggDropAdvanced.md)
62+
* [Class DP: Longest Common Subsequence](dynamic_programming/LongestCommonSubsequence.md)
63+
* [Classis DP: Game Problems](dynamic_programming/GameProblemsInDynamicProgramming.md)
64+
* [Regular Expression](dynamic_programming/RegularExpression.md)
65+
* [The Strategies of Subsequence Problem](dynamic_programming/StrategiesForSubsequenceProblem.md)
66+
* [Greedy: Interval Scheduling](dynamic_programming/IntervalScheduling.md)
67+
* [4 Keys Keyboard](dynamic_programming/FourKeysKeyboard.md)
68+
* [What is DP Optimal Substructure](dynamic_programming/OptimalSubstructure.md)
69+
* [动态规划详解](dynamic_programming/动态规划详解进阶.md)
70+
* [动态规划设计:最长递增子序列](dynamic_programming/动态规划设计:最长递增子序列.md)
71+
* [动态规划之KMP字符匹配算法](dynamic_programming/动态规划之KMP字符匹配算法.md)
72+
* [团灭 LeetCode 股票买卖问题](dynamic_programming/团灭股票问题.md)
73+
* [团灭 LeetCode 打家劫舍问题](dynamic_programming/抢房子.md)
74+
75+
* V. Common Knowledge
76+
* [Difference Between Process and Thread in Linux](common_knowledge/linuxProcess.md)
77+
* [You Must Know About Linux Shell](common_knowledge/linuxshell.md)
78+
* [You Must Know About Cookie and Session](common_knowledge/SessionAndCookie.md)
79+
* [Cryptology Algorithm](common_knowledge/Cryptology.md)
80+
* [Some Good Online Pratice Platforms](common_knowledge/OnlinePraticePlatform.md)

0 commit comments

Comments
 (0)