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 å·é¢æ件
- ç®æ³å¯è§åé¢æ¿ä½¿ç¨è¯´æï¼å¿ 读ï¼
- 使ç¨å¯è§åé¢æ¿ç JS åºç¡ï¼å¯éï¼
- 30 天å·é¢æå¡ææï¼å¯éï¼
æéå ¥é¨ï¼æ°æ®ç»æåºç¡
- æ¬ç« 导读
- å¦ä¹ æ¬ç«æéç Java åºç¡
- æææå¸¦ä½ å®ç°å¨ææ°ç»
- æææå¸¦ä½ å®ç°å/åé¾è¡¨
- æææå¸¦ä½ å®ç°éå/æ
- æææå¸¦ä½ å®ç°åå¸è¡¨
- æææå¸¦ä½ å®ç°åå¸éå
- æåæ ååºä¸çäºåæ ç»æ
- æææå¸¦ä½ å®ç°äºåå
- æ£å¨æ´æ° ing
第é¶ç« ãæ ¸å¿æ¡æ¶æ±æ»
- æ¬ç« 导读
- å¦ä¹ ç®æ³åå·é¢çæ¡æ¶æç»´
- æçå·é¢å¿å¾ï¼ç®æ³çæ¬è´¨
- åæéæå·§ç§æä¸éé¾è¡¨é¢ç®
- åæéæå·§ç§æä¸éæ°ç»é¢ç®
- æåäºé¦è¯ï¼ææ»å¨çªå£ç®æ³åæäºé»åé¢
- æåäºé¦è¯ï¼æäºåæç´¢ç®æ³åæäºé»åé¢
- ä¸å¥å¸¦ä½ å·äºåæ ï¼çº²é¢ç¯ï¼
- å¨æè§å解é¢å¥è·¯æ¡æ¶
- å溯ç®æ³è§£é¢å¥è·¯æ¡æ¶
- å溯ç®æ³ç§ææææå/ç»å/åéé®é¢
- çç模åï¼å溯ç®æ³ç©·ä¸¾ç两ç§è§è§
- BFS ç®æ³è§£é¢å¥è·¯æ¡æ¶
- ç®æ³æ¶ç©ºå¤æ度åæå®ç¨æå
第ä¸ç« ãæææå·æ°æ®ç»æ
-
- åæéæå·§ç§æä¸éæ°ç»é¢ç®
- ã强åç»ä¹ ãæ°ç»åæéç»å ¸ä¹ é¢
- ä¸ä¸ªæ¹æ³å¢ç nSum é®é¢
- å°èç¾çç®æ³æå·§ï¼åç¼åæ°ç»
- ã强åç»ä¹ ãåç¼åæå·§ç»å ¸ä¹ é¢
- å°èç¾çç®æ³æå·§ï¼å·®åæ°ç»
- äºç»´æ°ç»çè±å¼éåæå·§
- æ»å¨çªå£ç®æ³æ ¸å¿ä»£ç 模æ¿
- ã强åç»ä¹ ãæ»å¨çªå£ç®æ³ç»å ¸ä¹ é¢
- æ»å¨çªå£ç®æ³å»¶ä¼¸ï¼Rabin Karp å符å¹é ç®æ³
- äºåæç´¢ç®æ³æ ¸å¿ä»£ç 模æ¿
- å®é äºåæç´¢æ¶çæç»´æ¡æ¶
- ã强åç»ä¹ ãäºåæç´¢ç®æ³ç»å ¸ä¹ é¢
- 带æéçéæºéæ©ç®æ³
- ç°å¿èµé©¬èåçç®æ³å³ç
- 常æ°æ¶é´å é¤/æ¥æ¾æ°ç»ä¸çä»»æå ç´
- ä¸éæ°ç»å»éçç®æ³é¢æææ´ä¸ä¼äº
-
- ä¸å¥å¸¦ä½ å·äºåæ ï¼çº²é¢ç¯ï¼
- ä¸å¥å¸¦ä½ å·äºåæ ï¼æè·¯ç¯ï¼
- ä¸å¥å¸¦ä½ å·äºåæ ï¼æé ç¯ï¼
- ä¸å¥å¸¦ä½ å·äºåæ ï¼ååºç¯ï¼
- ä¸å¥å¸¦ä½ å·äºåæ ï¼åºååç¯ï¼
- å½å¹¶æåºè¯¦è§£ååºç¨
- ä¸å¥å¸¦ä½ å·äºåæç´¢æ ï¼ç¹æ§ç¯ï¼
- ä¸å¥å¸¦ä½ å·äºåæç´¢æ ï¼åºæç¯ï¼
- ä¸å¥å¸¦ä½ å·äºåæç´¢æ ï¼æé ç¯ï¼
- å¿«éæåºè¯¦è§£ååºç¨
- é¢ç®ä¸è®©æå¹²ä»ä¹ï¼æåè¦å¹²ä»ä¹
- Gitåçä¹æè¿å ¬å ±ç¥å
- å¦ä½è®¡ç®å®å ¨äºåæ çèç¹æ°
- ç¨æ 模æéå½è¿ä»£éåäºåæ
-
æææå¸¦ä½ å· 100 éäºåæ ä¹ é¢
- ã强åç»ä¹ ãç¨ãéåãæç»´è§£é¢ I
- ã强åç»ä¹ ãç¨ãéåãæç»´è§£é¢ II
- ã强åç»ä¹ ãç¨ãéåãæç»´è§£é¢ III
- ã强åç»ä¹ ãç¨ãå解é®é¢ãæç»´è§£é¢ I
- ã强åç»ä¹ ãç¨ãå解é®é¢ãæç»´è§£é¢ II
- ã强åç»ä¹ ãåæ¶è¿ç¨ä¸¤ç§æ维解é¢
- ã强åç»ä¹ ãå©ç¨ååºä½ç½®è§£é¢ I
- ã强åç»ä¹ ãå©ç¨ååºä½ç½®è§£é¢ II
- ã强åç»ä¹ ãå©ç¨ååºä½ç½®è§£é¢ III
- ã强åç»ä¹ ãè¿ç¨å±åºéåè§£é¢ I
- ã强åç»ä¹ ãè¿ç¨å±åºéåè§£é¢ II
- ã强åç»ä¹ ãäºåæç´¢æ ç»å ¸ä¾é¢ I
- ã强åç»ä¹ ãäºåæç´¢æ ç»å ¸ä¾é¢ II
-
- éåå®ç°æ 以åæ å®ç°éå
- ã强åç»ä¹ ãæ çç»å ¸ä¹ é¢
- ã强åç»ä¹ ãéåçç»å ¸ä¹ é¢
- åè°æ ç®æ³æ¨¡æ¿è§£å³ä¸éä¾é¢
- ã强åç»ä¹ ãåè°æ çå ç§åä½åç»å ¸ä¹ é¢
- åè°éåç»æ解å³æ»å¨çªå£é®é¢
- ã强åç»ä¹ ãåè°éåçéç¨å®ç°åç»å ¸ä¹ é¢
- ç®æ³å°±åæä¹é«ï¼å¸¦ä½ ææ¸ LRU ç®æ³
- ç®æ³å°±åæä¹é«ï¼å¸¦ä½ ææ¸ LFU ç®æ³
- ã强åç»ä¹ ãåå¸è¡¨æ´å¤ä¹ é¢
- äºåå 详解å®ç°ä¼å 级éå
- ã强åç»ä¹ ãä¼å 级éåç»å ¸ä¹ é¢
- ä¸éæ±ä¸ä½æ°çç®æ³é¢æææ´ä¸ä¼äº
- åç¼æ ç®æ³æ¨¡æ¿ç§æäºéç®æ³é¢
- 设计æååæ¶é´çº¿åè½
- ã强åç»ä¹ ãæ´å¤ç»å ¸è®¾è®¡ä¹ é¢
第äºç« ãæææå·å¨æè§å
-
- å¨æè§åä¹æå°è·¯å¾å
- å¨æè§å帮æéå ³äºãéå¡ã
- å¨æè§å帮æéå ³äºãè¾å°4ã
- æ 游çé±å¤§æ³ï¼å ææçè·¯å¾
- ç»å ¸å¨æè§åï¼æ£å表达å¼
- ç»å ¸å¨æè§åï¼é«æ¥¼æ鸡è
- ç»å ¸å¨æè§åï¼æ³æ°ç
- ç»å ¸å¨æè§åï¼åå¼é®é¢
- ç»å ¸å¨æè§åï¼åé®é®ç
- ä¸ä¸ªæ¹æ³å¢ç LeetCode æ家å«èé®é¢
- ä¸ä¸ªæ¹æ³å¢ç LeetCode è¡ç¥¨ä¹°åé®é¢
第ä¸ç« ãå¿ ç¥å¿ ä¼ç®æ³æå·§
-
- å溯ç®æ³è§£é¢å¥è·¯æ¡æ¶
- å溯ç®æ³ç§ææææå/ç»å/åéé®é¢
- çç模åï¼å溯ç®æ³ç©·ä¸¾ç两ç§è§è§
- ä¸æç§æææå²å±¿é¢ç®
- å溯ç®æ³æä½³å®è·µï¼è§£æ°ç¬
- å溯ç®æ³æä½³å®è·µï¼æ¬å·çæ
- å溯ç®æ³æä½³å®è·µï¼éååå
- BFS ç®æ³è§£é¢å¥è·¯æ¡æ¶
- å¦ä½ç¨ BFS ç®æ³ç§æåç§æºåé¢
-
- ç®æ³ç¬è¯ãéªåãå¥è·¯
- ä¸æç§æææä¸æ°ç³»åé®é¢
- åæ²»ç®æ³è¯¦è§£ï¼è¿ç®ä¼å 级
- ä¸ä¸ªæ¹æ³è§£å³ä¸éåºé´é®é¢
- è°è½æ³å°ï¼æå°ä¸»ä¹è½ç©åºç®æ³
- ç§é¥¼æåºç®æ³
- å符串ä¹æ³è®¡ç®
- å¦ä½å®ç°ä¸ä¸ªè®¡ç®å¨
- å¦ä½é«æ解å³æ¥é¨æ°´é®é¢
- å¦ä½è§£å³æ¬å·ç¸å ³çé®é¢
- å¦ä½å¤å®å®ç¾ç©å½¢
æè°¢å¦ä¸å¤§ä½¬åä¸ç¿»è¯
æç §æµç§°åå ¸åºæåï¼
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