fucking-algorithm
刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why.
Top Related Projects
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 代码。简体版和繁体版同步更新,English version ongoing
《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫!🔥🔥 来看看,你会发现相见恨晚!🚀
LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。)
✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% / LeetCode 题解
Demonstrate all the questions on LeetCode in the form of animation.(用动画的形式呈现解LeetCode题目的思路)
:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计
Quick Overview
The "fucking-algorithm" repository on GitHub, created by labuladong, is a comprehensive collection of algorithms and data structures, accompanied by detailed explanations and solutions to common coding problems. The repository serves as a valuable resource for developers, students, and anyone interested in improving their problem-solving skills and expanding their algorithmic knowledge.
Pros
- Comprehensive Coverage: The repository covers a wide range of algorithmic topics, including dynamic programming, greedy algorithms, graph theory, and more, making it a one-stop-shop for algorithm learning.
- Detailed Explanations: The author, labuladong, provides in-depth explanations and step-by-step solutions for each problem, making it easier for users to understand the underlying concepts and approaches.
- Practical Applications: The problems and solutions presented in the repository are often drawn from real-world scenarios, making the content more relevant and applicable to everyday programming tasks.
- Active Community: The repository has a large and active community of contributors and users, who provide feedback, suggestions, and additional solutions, further enhancing the project's value.
Cons
- Language Specific: The repository is primarily focused on algorithms and solutions in the Python and Java programming languages, which may limit its usefulness for developers working in other languages.
- Lack of Structured Curriculum: While the repository covers a wide range of topics, it may lack a structured curriculum or learning path, which could make it challenging for beginners to navigate and progress through the content.
- Potential Outdated Content: As with any open-source project, there is a possibility that some of the content in the repository may become outdated over time, requiring regular updates and maintenance.
- Overwhelming for Beginners: The sheer volume of content and the complexity of some of the algorithms presented in the repository may be overwhelming for beginners, who may benefit from a more gradual and structured approach to learning.
Code Examples
Here are a few short code examples from the "fucking-algorithm" repository:
- Reversing a Linked List:
def reverseList(head: ListNode) -> ListNode:
prev, curr = None, head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
This code demonstrates the implementation of the "Reverse Linked List" problem, where the goal is to reverse the order of the nodes in a singly-linked list.
- Climbing Stairs:
public int climbStairs(int n) {
if (n <= 2) {
return n;
}
int[] dp = new int[n + 1];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
}
This code demonstrates the implementation of the "Climbing Stairs" problem, where the goal is to find the number of unique ways to climb to the top of a staircase with n
steps, given that you can either take 1 step or 2 steps at a time.
- Merge Two Sorted Lists:
def mergeTwoLists(l1: ListNode, l2: ListNode) -> ListNode:
dummy = ListNode()
curr = dummy
while l1 and l2:
if l1.val < l2.val:
curr.next = l1
l1 = l1.next
else:
curr.next = l2
l2 = l2.next
curr = curr.next
if l1:
curr.next = l1
if l2:
curr.next = l2
return dummy.next
This code demonstrates the implementation of the "Merge Two Sorted Lists" problem, where the goal is to merge two sorted linked lists into a single sorted linked list.
Getting Started
To get started with the "fucking-algorithm" repository, follow these steps:
- Clone the repository to your local machine:
git clone https://github.com/labuladong/fucking-algorithm.git
- Navigate
Competitor Comparisons
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 代码。简体版和繁体版同步更新,English version ongoing
Pros of hello-algo
- Offers implementations in multiple programming languages (C, C++, Java, Python, etc.)
- Provides interactive visualizations for algorithms and data structures
- Includes a comprehensive e-book with detailed explanations
Cons of hello-algo
- Less extensive coverage of advanced algorithms compared to fucking-algorithm
- Newer project with potentially fewer community contributions and discussions
- May lack some of the in-depth problem-solving strategies found in fucking-algorithm
Code Comparison
hello-algo (Python):
def binary_search(nums: List[int], target: int) -> int:
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] < target:
left = mid + 1
elif nums[mid] > target:
right = mid - 1
else:
return mid
return -1
fucking-algorithm (Java):
int binarySearch(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while(left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target)
return mid;
else if (nums[mid] < target)
left = mid + 1;
else if (nums[mid] > target)
right = mid - 1;
}
return -1;
}
Both repositories provide excellent resources for learning algorithms and data structures. hello-algo offers a more visual and interactive approach with multi-language support, while fucking-algorithm provides a deeper dive into problem-solving techniques and advanced algorithms.
《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张 思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫!🔥🔥 来看看,你会发现相见恨晚!🚀
Pros of leetcode-master
- More comprehensive coverage of LeetCode problems, with over 300 solutions
- Includes detailed explanations and diagrams for complex algorithms
- Regularly updated with new problems and solutions
Cons of leetcode-master
- Primarily focused on C++ solutions, which may not be ideal for all users
- Less emphasis on general problem-solving strategies compared to fucking-algorithm
Code Comparison
leetcode-master (C++):
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> map;
for (int i = 0; i < nums.size(); i++) {
auto it = map.find(target - nums[i]);
if (it != map.end()) {
return {it->second, i};
}
map[nums[i]] = i;
}
return {};
}
};
fucking-algorithm (Java):
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution");
}
}
Both repositories offer valuable resources for learning algorithms and solving LeetCode problems. leetcode-master provides a more extensive collection of problems and solutions, while fucking-algorithm focuses on teaching problem-solving strategies and techniques. The choice between the two depends on the user's preferred programming language and learning style.
LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。)
Pros of leetcode
- Covers a wider range of LeetCode problems, providing solutions in multiple programming languages
- Includes detailed explanations and time/space complexity analyses for each solution
- Offers a more comprehensive approach to LeetCode preparation, including company-specific problem lists
Cons of leetcode
- Less focus on algorithmic patterns and problem-solving techniques compared to fucking-algorithm
- May be overwhelming for beginners due to the sheer volume of problems and solutions
- Lacks the structured learning path and in-depth explanations found in fucking-algorithm
Code Comparison
fucking-algorithm (Java):
public ListNode reverseList(ListNode head) {
ListNode prev = null, curr = head;
while (curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
leetcode (JavaScript):
var reverseList = function(head) {
let prev = null, curr = head;
while (curr) {
[curr.next, prev, curr] = [prev, curr, curr.next];
}
return prev;
};
Both repositories provide solutions to common LeetCode problems, but they differ in their approach and focus. fucking-algorithm emphasizes understanding algorithmic patterns and problem-solving techniques, while leetcode offers a broader range of problems and solutions in multiple languages. The code comparison shows similar implementations of reversing a linked list, with fucking-algorithm using a more traditional approach in Java and leetcode showcasing a concise ES6 solution in JavaScript.
✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% / LeetCode 题解
Pros of LeetCode-Go
- Focuses specifically on Go language implementations
- Includes detailed explanations and comments in the code
- Covers a wide range of LeetCode problems with consistent structure
Cons of LeetCode-Go
- Limited to Go language, less accessible for users of other languages
- May not provide as in-depth algorithmic explanations as fucking-algorithm
Code Comparison
LeetCode-Go:
func twoSum(nums []int, target int) []int {
m := make(map[int]int)
for i, num := range nums {
if j, ok := m[target-num]; ok {
return []int{j, i}
}
m[num] = i
}
return nil
}
fucking-algorithm:
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution");
}
Both repositories provide high-quality algorithm implementations and explanations, but they cater to different audiences. LeetCode-Go is ideal for Go developers looking for language-specific solutions, while fucking-algorithm offers a more language-agnostic approach with in-depth algorithmic insights.
Demonstrate all the questions on LeetCode in the form of animation.(用动画的形式呈现解LeetCode题目的思路)
Pros of LeetCodeAnimation
- Utilizes animations and visual aids to explain algorithms, making complex concepts easier to understand
- Covers a wide range of LeetCode problems, providing solutions for various difficulty levels
- Includes explanations in both Chinese and English, making it accessible to a broader audience
Cons of LeetCodeAnimation
- Less comprehensive in terms of algorithm theory and problem-solving strategies
- Animations may not be as effective for learners who prefer text-based explanations
- Updates are less frequent compared to fucking-algorithm
Code Comparison
LeetCodeAnimation:
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
fucking-algorithm:
ListNode* reverseList(ListNode* head) {
if (head == nullptr || head->next == nullptr) {
return head;
}
ListNode* last = reverseList(head->next);
head->next->next = head;
head->next = nullptr;
return last;
}
Both repositories offer valuable resources for learning algorithms and solving LeetCode problems. LeetCodeAnimation excels in visual explanations, while fucking-algorithm provides more in-depth theoretical knowledge and problem-solving techniques.
:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计
Pros of CS-Notes
- Broader coverage of computer science topics, including operating systems, networks, and databases
- More comprehensive preparation for technical interviews and coding tests
- Includes system design concepts, which are crucial for senior-level positions
Cons of CS-Notes
- Less focus on in-depth algorithm explanations and problem-solving strategies
- May be overwhelming for beginners due to the vast amount of information covered
- Lacks the engaging narrative style found in fucking-algorithm
Code Comparison
CS-Notes example (Java):
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
fucking-algorithm example (Python):
def reverseList(self, head: ListNode) -> ListNode:
prev, curr = None, head
while curr:
curr.next, prev, curr = prev, curr, curr.next
return prev
Both repositories offer valuable resources for learning algorithms and data structures. CS-Notes provides a more comprehensive overview of computer science topics, making it suitable for interview preparation and general knowledge. fucking-algorithm focuses more on in-depth algorithm explanations and problem-solving techniques, which can be particularly helpful for mastering specific algorithms and improving coding skills.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
English version is on labuladong.online too. Just enjoyï¼)
labuladong çç®æ³ç¬è®°
æ¬ä»åºæ»å ± 60 å¤ç¯ååæç« ï¼é½æ¯åºäº LeetCode çé¢ç®ï¼æ¶µçäºææé¢ååæå·§ï¼èä¸ä¸å®è¦åå°ä¸¾ä¸åä¸ï¼éä¿ææï¼ç»ä¸æ¯ç®åç代ç å ç ï¼å颿ç®å½ã
æå åæ§½å å¥ã**å·é¢å·é¢ï¼å·çæ¯é¢ï¼å¹å »çæ¯æç»´ï¼æ¬ä»åºçç®çå°±æ¯ä¼ éè¿ç§ç®æ³æç»´**ãæè¦æ¯åªåä¸ä¸ªå å« LeetCode é¢ç®ä»£ç çä»åºï¼æä¸ªé¤åç¨ï¼æ²¡ææè·¯è§£éï¼æ²¡ææç»´æ¡æ¶ï¼é¡¶å¤å个æ¶é´å¤æåº¦ï¼é£ç©æä¸ç¼å°±è½çåºæ¥ã
åªæ³è¦çæ¡çè¯å¾å®¹æï¼é¢ç®è¯è®ºåºäºè±å «é¨ççæ¡ï¼å¨ä¸å¨å°±ç§ python ä¸è¡ä»£ç è§£å³ï¼æé£ä¹å¤äººç¹èµãé®é¢æ¯ï¼ä½ å»åç®æ³é¢ï¼æ¯å»å¦ä¹ ç¼ç¨è¯è¨çå¥ææ·«å·§çï¼è¿æ¯å¦ä¹ ç®æ³æç»´çå¢ï¼ä½ çå¿«ä¹ï¼å°åºæºèªå¤å¶å«äººçä¸è¡ä»£ç éè¿æµè¯ï¼å·²å®æé¢ç® +1ï¼è¿æ¯æºèªèªå·±éè¿é»è¾æ¨çåç®æ³æ¡æ¶ä¸ççæ¡ååºè§£æ³ï¼
ç½ä¸æ»æå¤§ä½¬å·æï¼è¯´æåçä¸è¥¿å¤ªåºç¡ï¼è¦ä¹è¯´ä¸è½å婿¡æ¶æç»´æ¥å¦ä¹ ç®æ³ãæåªè½è¯´å¤§å®¶å·ç®æ³å°±æ¯æ¾å·¥ä½åé¥çï¼ä¸æ¯æç«èµçï¼æä¹æ¯ä¸è·¯æ¸ç¬æ»æè¿æ¥çï¼æä»¬è¦çæ¯æ¸ æ¥æç½ææå¾ï¼ä¸æ¯æ å¼çèæ ææã
䏿³åæ³åå°éä¿ææï¼é¾éè¦ä¸æ¥å æãç®æ³å¯¼è®ºãå¹ä¸å¤©ï¼ç¶åæäººå®¶é½å¿ææ¬ä»°å°åéï¼
**åå¥äºæ åå¤äºï¼é½è½åç°å¥è·¯çï¼ææåç§ç®æ³å¥è·¯æ¡æ¶æ»ç»åºæ¥ï¼ç¸ä¿¡å¯ä»¥å¸®å©å ¶ä»äººå°èµ°å¼¯è·¯**ãæè¿ä¸ªçº¯é èªå¦çå°ç«¥éï¼è±äºä¸å¹´æ¶é´å·é¢åæ»ç»ï¼èªå·±åäºä¸ä»½ç®æ³å°æï¼å颿ç®å½ï¼è¿éå°±ä¸åºè¯äºã
å¨å¼å§å¦ä¹ ä¹å
1ãå ç»æ¬ä»åºç¹ä¸ª starï¼æ»¡è¶³ä¸ä¸æçèè£å¿ï¼æç« è´¨éç»å¯¹å¼ä½ ä¸ä¸ª starãæè¿å¨ç»§ç»åä½ï¼ç»æä¸ç¹ç»§ç»åæçå¨åï¼æè°¢ã
**2ã建议æ¶èæçå¨çº¿ç½ç«ï¼æ¯ç¯æç« å¼å¤´é½æå¯¹åºç忣é¢ç®é¾æ¥ï¼å¯ä»¥è¾¹çæç« è¾¹å·é¢ï¼ä¸å ±å¯ä»¥æææå¸¦ä½ å· 500 éé¢ç®**ï¼
2024 ææ°å°åï¼https://labuladong.online/algo/
GitHub Pages å°åï¼https://labuladong.online/algo/
Gitee Pages å°åï¼https://labuladong.gitee.io/algo/
labuladong å·é¢å ¨å®¶æ¡¶ç®ä»
ä¸ãç®æ³å¯è§å颿¿
æçç®æ³ç½ç«ãææé 奿件é½éæäºä¸ä¸ªç®æ³å¯è§åå·¥å ·ï¼å¯ä»¥å¯¹æ°æ®ç»æåéå½è¿ç¨è¿è¡å¯è§åï¼å¤§å¹ éä½çè§£ç®æ³çé¾åº¦ãå 乿¯éé¢ç®çè§£æ³ä»£ç 齿坹åºçå¯è§å颿¿ï¼å ·ä½åè§ä¸æ¹ä»ç»ã
äºãå¦ä¹ ç½ç«
å 容å½ç¶æ¯æçç³»åç®æ³æç¨ä¸ææ ¸å¿çé¨åï¼æçç®æ³æç¨é½åå¸å¨ç½ç« labuladong.online ä¸ï¼ç¸ä¿¡ä½ 伿ªæ¥ä¼å¨è¿éè±è´¹å¤§éçå¦ä¹ æ¶é´ï¼è䏿¯ä» ä» å å ¥æ¶è夹~
ä¸ãChrome æä»¶
主è¦åè½ï¼Chrome æä»¶å¯ä»¥å¨ä¸æç忣æè±æç LeetCode ä¸å¿«æ·æ¥çæçãé¢è§£ãæãæè·¯ãï¼å¹¶æ·»å äºé¢ç®åç®æ³æå·§ä¹é´çå¼ç¨å ³ç³»ï¼å¯ä»¥åæçç½ç«/å ¬ä¼å·/课ç¨èå¨ï¼ç»æçè¯»è æä¾æä¸æ»çå·é¢ä½éªãå®è£ ä½¿ç¨æåè§ä¸æ¹ç®å½ã
åãvscode æä»¶
主è¦åè½ï¼å Chrome æä»¶åè½åºæ¬ç¸åï¼ä¹ æ¯å¨ vscode ä¸å·é¢ç读è å¯ä»¥ä½¿ç¨è¯¥æä»¶ãå®è£ ä½¿ç¨æåè§ä¸æ¹ç®å½ã
äºãJetbrains æä»¶
主è¦åè½ï¼å Chrome æä»¶åè½åºæ¬ç¸åï¼ä¹ æ¯å¨ Jetbrains å®¶ç IDEï¼PyCharm/Intellij/Goland çï¼ä¸å·é¢ç读è å¯ä»¥ä½¿ç¨è¯¥æä»¶ãå®è£ ä½¿ç¨æåè§ä¸æ¹ç®å½ã
æåç¥å¤§å®¶å¦ä¹ æå¿«ï¼å¨é¢æµ·ä¸èªå¨é¨æ¸¸ï¼
æç« ç®å½
æ¬ç«ç®ä»
é 奿件åç®æ³å¯è§å
- é å¥ Chrome å·é¢æä»¶
- é å¥ vscode å·é¢æä»¶
- é å¥ JetBrains å·é¢æä»¶
- ç®æ³å¯è§å颿¿ä½¿ç¨è¯´æ
- æ¬ç«ä»è´¹ä¼å
é对åå¦åéæçå¦ä¹ è§å
- ç®æ³å·é¢çéç¹åå
- åå¦è å¦ä¹ è§å
- éæå¦ä¹ è§å
- ä¹ é¢ç« èçç»ä¹ /å¤ä¹ æ¹æ³
- ç®æ³å¯è§å鿥页
å ¥é¨ï¼ç¼ç¨è¯è¨åºç¡åç»ä¹
- æ¬ç« 导读
- C++ è¯è¨åºç¡
- Java è¯è¨åºç¡
- Golang è¯è¨åºç¡
- Python è¯è¨åºç¡
- JavaScript è¯è¨åºç¡
- 忣/LeetCode è§£é¢é¡»ç¥
- ç¼ç¨è¯è¨å·é¢å®è·µ
åºç¡ï¼æ°æ®ç»æåæåºç²¾è®²
-
å大æåºç®æ³åçåå¯è§å
- æ¬ç« 导读
- æåºç®æ³çå ³é®ææ
- éæ©æåºæé¢ä¸´çé®é¢
- æ¥æç¨³å®æ§ï¼å泡æåº
- è¿ç¨éåæç»´ï¼æå ¥æåº
- çªç ´ O(N^2)ï¼å¸å°æåº
- å¦ç¨äºåæ ååºä½ç½®ï¼å¿«éæåº
- å¦ç¨äºåæ ååºä½ç½®ï¼å½å¹¶æåº
- äºåå ç»æçè¿ç¨ï¼å æåº
- å ¨æ°çæåºåçï¼è®¡æ°æåº
- åéä¼é¿ï¼æ¡¶æåº
- åºæ°æåºï¼Radix Sortï¼
第é¶ç« ãæ ¸å¿å·é¢æ¡æ¶æ±æ»
- æ¬ç« 导读
- å¦ä¹ æ°æ®ç»æåç®æ³çæ¡æ¶æç»´
- åæéæå·§ç§æä¸éé¾è¡¨é¢ç®
- åæéæå·§ç§æä¸éæ°ç»é¢ç®
- æ»å¨çªå£ç®æ³æ ¸å¿ä»£ç 模æ¿
- äºåæç´¢ç®æ³æ ¸å¿ä»£ç 模æ¿
- 卿è§åè§£é¢å¥è·¯æ¡æ¶
- åæº¯ç®æ³è§£é¢å¥è·¯æ¡æ¶
- BFS ç®æ³è§£é¢å¥è·¯æ¡æ¶
- äºåæ ç³»åç®æ³æ ¸å¿çº²é¢
- åæº¯ç®æ³ç§ææææå/ç»å/åéé®é¢
- è´ªå¿ç®æ³è§£é¢å¥è·¯æ¡æ¶
- åæ²»ç®æ³è§£é¢å¥è·¯æ¡æ¶
- ç®æ³æ¶ç©ºå¤æåº¦åæå®ç¨æå
第ä¸ç« ãç»å ¸æ°æ®ç»æç®æ³
-
- åæéæå·§ç§æä¸éæ°ç»é¢ç®
- äºç»´æ°ç»çè±å¼éåæå·§
- ä¸ä¸ªæ¹æ³å¢ç nSum é®é¢
- ã强åç»ä¹ ãæ°ç»åæéç»å ¸ä¹ é¢
- å°èç¾çç®æ³æå·§ï¼åç¼åæ°ç»
- ã强åç»ä¹ ãåç¼åæå·§ç»å ¸ä¹ é¢
- å°èç¾çç®æ³æå·§ï¼å·®åæ°ç»
- æ»å¨çªå£ç®æ³æ ¸å¿ä»£ç 模æ¿
- ã强åç»ä¹ ãæ»å¨çªå£ç®æ³ç»å ¸ä¹ é¢
- æ»å¨çªå£å»¶ä¼¸ï¼Rabin Karp å符å¹é ç®æ³
- äºåæç´¢ç®æ³æ ¸å¿ä»£ç 模æ¿
- å®é è¿ç¨äºåæç´¢æ¶çæç»´æ¡æ¶
- ã强åç»ä¹ ãäºåæç´¢ç®æ³ç»å ¸ä¹ é¢
- 带æéçéæºéæ©ç®æ³
- ç°å¿èµé©¬èåçç®æ³å³ç
-
- äºåæ ç³»åç®æ³æ ¸å¿çº²é¢
- äºåæ å¿æ³ï¼æè·¯ç¯ï¼
- äºåæ å¿æ³ï¼æé ç¯ï¼
- äºåæ å¿æ³ï¼ååºç¯ï¼
- äºåæ å¿æ³ï¼åºååç¯ï¼
- äºåæç´¢æ å¿æ³ï¼ç¹æ§ç¯ï¼
- äºåæç´¢æ å¿æ³ï¼åºæç¯ï¼
- äºåæç´¢æ å¿æ³ï¼æé ç¯ï¼
- äºåæç´¢æ å¿æ³ï¼ååºç¯ï¼
-
奿¨¡æ¿è§£å³ 100 éäºåæ ä¹ é¢
- æ¬ç« 导读
- ã强åç»ä¹ ãç¨ãéåãæç»´è§£é¢ I
- ã强åç»ä¹ ãç¨ãéåãæç»´è§£é¢ II
- ã强åç»ä¹ ãç¨ãéåãæç»´è§£é¢ III
- ã强åç»ä¹ ãç¨ãåè§£é®é¢ãæç»´è§£é¢ I
- ã强åç»ä¹ ãç¨ãåè§£é®é¢ãæç»´è§£é¢ II
- ã强åç»ä¹ ãåæ¶è¿ç¨ä¸¤ç§æç»´è§£é¢
- ã强åç»ä¹ ãå©ç¨ååºä½ç½®è§£é¢ I
- ã强åç»ä¹ ãå©ç¨ååºä½ç½®è§£é¢ II
- ã强åç»ä¹ ãå©ç¨ååºä½ç½®è§£é¢ III
- ã强åç»ä¹ ãè¿ç¨å±åºéåè§£é¢ I
- ã强åç»ä¹ ãè¿ç¨å±åºéåè§£é¢ II
- ã强åç»ä¹ ãäºåæç´¢æ ç»å ¸ä¾é¢ I
- ã强åç»ä¹ ãäºåæç´¢æ ç»å ¸ä¾é¢ II
-
- éåå®ç°æ ä»¥åæ å®ç°éå
- ã强åç»ä¹ ãæ çç»å ¸ä¹ é¢
- ã强åç»ä¹ ãæ¬å·ç±»é®é¢æ±æ»
- ã强åç»ä¹ ãéåçç»å ¸ä¹ é¢
- åè°æ ç®æ³æ¨¡æ¿è§£å³ä¸éä¾é¢
- ã强åç»ä¹ ãåè°æ çå ç§åä½åç»å ¸ä¹ é¢
- åè°éåç»æè§£å³æ»å¨çªå£é®é¢
- ã强åç»ä¹ ãåè°éåçéç¨å®ç°åç»å ¸ä¹ é¢
- ç®æ³å°±åæä¹é«ï¼ææ¸ LRU ç®æ³
- ç®æ³å°±åæä¹é«ï¼ææ¸ LFU ç®æ³
- å¸¸æ°æ¶é´å é¤/æ¥æ¾æ°ç»ä¸çä»»æå ç´
- ã强åç»ä¹ ãåå¸è¡¨æ´å¤ä¹ é¢
- ã强åç»ä¹ ãä¼å 级éåç»å ¸ä¹ é¢
- TreeMap/TreeSet 代ç å®ç°
- SegmentTree 线段æ 代ç å®ç°
- Trie/åå ¸æ /åç¼æ 代ç å®ç°
- ã强åç»ä¹ ãTrie æ ç®æ³ä¹ é¢
- 设计æååæ¶é´çº¿åè½
- 设计èåºåº§ä½åé ç®æ³
- ã强åç»ä¹ ãæ´å¤ç»å ¸è®¾è®¡ä¹ é¢
- æå±ï¼å¦ä½å®ç°ä¸ä¸ªè®¡ç®å¨
- æå±ï¼ä¸¤ä¸ªäºåå å®ç°ä¸ä½æ°ç®æ³
- æå±ï¼æ°ç»å»éé®é¢ï¼å°é¾çï¼
第äºç« ãç»å ¸æ´åæç´¢ç®æ³
-
- åæº¯ç®æ³è§£é¢å¥è·¯æ¡æ¶
- åæº¯ç®æ³å®è·µï¼æ°ç¬å N çåé®é¢
- åæº¯ç®æ³ç§ææææå/ç»å/åéé®é¢
- ççæ¨¡åï¼åæº¯ç®æ³ç©·ä¸¾ç两ç§è§è§
- è§£çåæº¯ç®æ³/DFSç®æ³çè¥å¹²çé®
- ä¸æç§æææå²å±¿é¢ç®
- åæº¯ç®æ³å®è·µï¼æ¬å·çæ
- åæº¯ç®æ³å®è·µï¼éååå
- ã强åç»ä¹ ãåæº¯ç®æ³ç»å ¸ä¹ é¢ I
- ã强åç»ä¹ ãåæº¯ç®æ³ç»å ¸ä¹ é¢ II
- ã强åç»ä¹ ãåæº¯ç®æ³ç»å ¸ä¹ é¢ III
第ä¸ç« ãç»å ¸å¨æè§åç®æ³
-
- 卿è§å乿å°è·¯å¾å
- 卿è§å帮æéå ³äºãéå¡ã
- 卿è§å帮æéå ³äºãè¾å°4ã
- æ æ¸¸çé±å¤§æ³ï¼å ææçè·¯å¾
- ç»å ¸å¨æè§åï¼æ£å表达å¼
- ç»å ¸å¨æè§åï¼é«æ¥¼æé¸¡è
- ç»å ¸å¨æè§åï¼æ³æ°ç
- ç»å ¸å¨æè§åï¼åå¼é®é¢
- ä¸ä¸ªæ¹æ³å¢ç LeetCode æå®¶å«èé®é¢
- ä¸ä¸ªæ¹æ³å¢ç LeetCode è¡ç¥¨ä¹°åé®é¢
第åç« ãå ¶ä»å¸¸è§ç®æ³æå·§
éå½
- labuladong.online æ´æ°æ¥å¿
- å¯è§å颿¿æ´æ°æ¥å¿
- Chrome å·é¢æä»¶æ´æ°æ¥å¿
- vscode å·é¢æä»¶æ´æ°æ¥å¿
- Jetbrain å·é¢æä»¶æ´æ°æ¥å¿
- ç½ç«/æä»¶é®é¢åé¦
æè°¢å¦ä¸å¤§ä½¬åä¸ç¿»è¯
æç §æµç§°åå ¸åºæåï¼
ABCpril, andavid, bryceustc, build2645, CarrieOn, cooker, Dong Wang, ExcaliburEX, floatLig, ForeverSolar, Fulin Li, Funnyyanne, GYHHAHA, Hi_archer, Iruze, Jieyixia, Justin, Kevin, Lrc123, lriy, Lyjeeq, MasonShu, Master-cai, miaoxiaozui2017, natsunoyoru97, nettee, PaperJets, qy-yang, realism0331, SCUhzs, Seaworth, shazi4399, ShuozheLi, sinjoywong, sunqiuming526, Tianhao Zhou, timmmGZ, tommytim0515, ucsk, wadegrc, walsvid, warmingkkk, Wonderxie, wsyzxxxx, xiaodp, youyun, yx-tan, Zero, Ziming
Donate
妿æ¬ä»åºå¯¹ä½ æå¸®å©ï¼å¯ä»¥è¯·ä½è åæ¯éæº¶åå¡

Top Related Projects
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 代码。简体版和繁体版同步更新,English version ongoing
《代码随想录》LeetCode 刷题攻略:200道经典题目刷题顺序,共60w字的详细图解,视频难点剖析,50余张思维导图,支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习不再迷茫!🔥🔥 来看看,你会发现相见恨晚!🚀
LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。)
✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% / LeetCode 题解
Demonstrate all the questions on LeetCode in the form of animation.(用动画的形式呈现解LeetCode题目的思路)
:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot