algo-en
  • Introduction
  • I. Dynamic Programming
    • Dynamic Programming in Details
    • Classic DP: Edit Distance
    • Classic DP: Super Egg
    • Classic DP: Super Egg(Advanced Solution)
    • Class DP: Longest Common Subsequence
    • Classis DP: Game Problems
    • Regular Expression
    • The Strategies of Subsequence Problem
    • Greedy: Interval Scheduling
    • 4 Keys Keyboard
    • What is DP Optimal Substructure
    • Longest Increasing Subsequence
    • KMP Algorithm In Detail
    • House Robber Problems
    • Stock Buy and Sell Problems
  • II. Data Structure
    • Binary Heap and Priority Queue
    • LRU Cache Strategy in Detail
    • Collections of Binary Search Operations
    • Special Data Structure: Monotonic Stack
    • Special Data Structure: Monotonic Stack
    • Design Twitter
    • Reverse Part of Linked List via Recursion
    • What's the Best Algo Book
    • Queue Implement Stack/Stack implement Queue
    • Framework for learning data structures and algorithms
  • III. Algorithmic thinking
    • My Way to Learn Algorithm
    • The Framework for Backtracking Algorithm
    • Binary Search in Detail
    • The Tech of Double Pointer
    • The Key Concept of TwoSum Problems
    • Divide Complicated Problem: Implement a Calculator
    • Prefix Sum Skill
    • FloodFill Algorithm in Detail
    • Interval Scheduling: Interval Merging
    • Interval Scheduling: Intersections of Intervals
    • String Multiplication
    • Pancake Soring Algorithm
    • Sliding Window Algorithm
    • Some Useful Bit Manipulations
    • Russian Doll Envelopes Problem
    • Recursion In Detail
    • Backtracking Solve Subset/Permutation/Combination
    • Several counter-intuitive Probability Problems
    • Shuffle Algorithm
  • IV. High Frequency Interview Problem
    • How to Implement LRU Cache
    • How to Find Prime Number Efficiently
    • How to Calculate Minimium Edit Distance
    • How to Solve Drop Water Problem
    • How to Remove Duplicate From Sorted Sequence
    • How to Find Longest Palindromic Substring
    • How to Reverse Linked List in K Group
    • How to Check the Validation of Parenthesis
    • How to Find Missing Element
    • How to Pick Elements From a Arbitrary Sequence
    • How to use Binary Search
    • How to Scheduling Seats
    • Union-Find Algorithm in Detail
    • Union-Find Application
    • Find Subsequence With Binary Search
    • Problems can be solved by one line
    • How to Find Duplicate and Missing Element
    • How to Check Palindromic LinkedList
  • V. Common Knowledge
    • Difference Between Process and Thread in Linux
    • You Must Know About Linux Shell
    • You Must Know About Cookie and Session
    • Cryptology Algorithm
    • Some Good Online Pratice Platforms
Powered by GitBook
On this page

Was this helpful?

Introduction

NextI. Dynamic Programming

Last updated 4 years ago

Was this helpful?

English translation is in progress... Some articles are still in Chinese, but most are completed. Please star this repo. The full translation will eventually be finished. Enjoy.

These articles go over different kinds of Algorithmic Thinking. All are based on LeetCode problems. They contain not just the solution code for a problem, but also WHY the solution works and HOW you too can figure it out.

I don't like one-liners. They can be confusing. I like clear, easily understandable code.

The Gitbook has been deployed and will sync with this branch of the repo:

If you would like to clone this repo, please use following command:

git clone --depth 1  --branch english https://github.com/labuladong/fucking-algorithm.git

This command specifies the english branch and will limit the depth of the clone and get rid of the Git commit history, which can be faster to clone.

Table of Contents

  • 0 . Must Read Series

  • I. Dynamic Programming Series

    • Classic DP: Edit Distance

  • II. Data Structures Series

    • LRU Cache Strategy in Detail

  • III. Algorithmic Thinking Series

  • IV. High Frequency Interview Series

    • How to Implement LRU Cache

    • How to Calculate Minimium Edit Distance

  • V. Common Knowledge

https://labuladong.gitbook.io/algo-en/
The Framework for Learning Algorithms and intense problem solving exercises
Algs4: Recommended book for Learning Algorithms and Data Structures
An analysis of Dynamic Programming
Dynamic Programming Q&A - What is Optimal Substructure
The Framework for Backtracking Algorithm
Binary Search in Detail: I wrote a Poem
The Sliding Window Technique
Difference Between Process and Thread in Linux
Some Good Online Practice Platforms
Dynamic Programming in Details
Dynamic Programming Q&A - What is Optimal Substructure
Classic DP: Longest Common Subsequence
Classic DP: Super Egg
Classic DP: Super Egg (Advanced Solution)
The Strategies of Subsequence Problem
Classic DP: Game Problems
Greedy: Interval Scheduling
KMP Algorithm In Detail
A solution to all Buy Time to Buy and Sell Stock Problems
A solution to all House Robber Problems
4 Keys Keyboard
Regular Expression
Longest Increasing Subsequence
The Framework for Learning Algorithms and intense problem solving exercises
Algs4: Recommended book for Learning Algorithms and Data Structures
Binary Heap and Priority Queue
Collections of Binary Search Operations
Special Data Structure: Monotonic Stack
Special Data Structure: Monotonic Queue
Design Twitter
Reverse Part of Linked List via Recursion
Queue Implement Stack/Stack implement Queue
My Way to Learn Algorithm
The Framework of Backtracking Algorithm
Binary Search in Detail
Backtracking Solve Subset/Permutation/Combination
Diving into the technical parts of Double Pointers
Sliding Window Technique
The Core Concept of TwoSum Problems
Common Bit Manipulations
Breaking down a Complicated Problem: Implement a Calculator
Pancake Sorting Algorithm
Prefix Sum: Intro and Concept
String Multiplication
FloodFill Algorithm in Detail
Interval Scheduling: Interval Merging
Interval Scheduling: Intersections of Intervals
Russian Doll Envelopes Problem
A collection of counter-intuitive Probability Problems
Shuffle Algorithm
Recursion In Detail
How to Find Prime Number Efficiently
How to use Binary Search
How to efficiently solve Trapping Rain Water Problem
How to Remove Duplicates From Sorted Array
How to Find Longest Palindromic Substring
How to Reverse Linked List in K Group
How to Check the Validation of Parenthesis
How to Find Missing Element
How to Find Duplicates and Missing Elements
How to Check Palindromic LinkedList
How to Pick Elements From an Infinite Arbitrary Sequence
How to Schedule Seats for Students
Union-Find Algorithm in Detail
Union-Find Application
Problems that can be solved in one line
Find Subsequence With Binary Search
Difference Between Process and Thread in Linux
This is the only article you need to understand session and cookie
Knowledge about Linux Shell that you should know
Cryptology Algorithm
Git/SQL/Good Online Practice Platforms