Skip to content

zhangruochi/leetcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode solutions in Python3.

Table of Contents

Complexity

Time & Space Complexity

Data Structure

Name. Note
BST NOTE
Graph NOTE
Trie NOTE
Union Find NOTE
Queue NOTE

Classical Algorithm

Name. Note
KMP NOTE
Recursion NOTE
Dijkstra NOTE
Floyd NOTE
BinarySearch NOTE
Sort NOTE
Heap and HeapSort NOTE
Greedy NOTE
Dynamic Programming NOTE
Eight Queue Backtracking
Hamilton circuit Backtracking
BFS(unweighted graph shortest path) NOTE
Tree Traverse NOTE
Knapsack

Bit Manipulation

NO. Title Solution Note Difficulty Time Space Tag
No.136 Single Number Solution Note Easy O(n) O(1)
No.191 Number of 1 Bits Solution Note Easy O(1) O(1)
No.190 Reverse Bits Solution Note Easy O(1) O(1)
No.231 Power of Two Solution Note Easy O(1) O(1)
No.342 Power of Four Solution Note Easy O(1) O(1)
No.401 Binary Watch Solution Note Easy O(1) O(1)
No.461 Hamming Distance Solution Note Easy O(1) O(1)
No.645 Set Mismatch Solution Note Easy O(n) O(1)
No.137 Single NumberII Solution Note Medium O(n) O(1)
No.762 Prime Number of Set Bits in Binary Representation Solution Note Medium O(1) O(1)
No.371 Sum of Two Integers Solution Note Easy O(1) O(1)
No.268 Missing Number Solution Note Easy O(n) O(1) ,Math
No.1085 Sum of Digits in the Minimum Number Solution Note Easy O(n) O(1)
No.728 Self Dividing Numbers Solution Note Easy O(nm) O(1)
No.319 Bulb Switcher Solution Note Medium O(n) O(1)
No.201 Bitwise AND of Numbers Range Solution Note Medium O(1) O(1)

Two Pointer

NO. Title Solution Note Difficulty Time Space Tag
No.011 Container With Most Water Solution Note Medium O(n) O(1) two pointer
No.209 Minimum Size Subarray Sum Solution Note Medium O(n) O(1) two pointer
No.083 Remove Duplicates from Sorted List Solution Note Easy O(n) O(1) two pointer
No.922 Sort Array By Parity II Solution Note Easy O(n) O(1) two pointer
No.904 Fruit Into Baskets Solution Note Medium O(n) O(1) two pointer
No.986 Interval List Intersections Solution Note Medium O(n) O(1) two pointer
No.1099 Two Sum Less Than K Solution Note Easy O(n) O(1) two pointer

Array

NO. Title Solution Note Difficulty Time Space Tag
No.026 Remove Duplicates from Sorted Array Python C++ Note Easy O(n) O(1) Array
No.027 Remove Element Solution Note Easy O(n) O(1)
No.066 Plus One Solution Note Easy O(n) O(1)
No.118 Pascal's Triangle Solution Note Easy O(n^2) O(1)
No.119 Pascal's Triangle II Solution Note Easy O(n^2) O(1)
No.121 Best Time to Buy and Sell Stock Solution Note Easy O(n) O(1) Array
No.169 Majority Element Solution Note Easy O(n) O(1)
No.189 Rotate Array Solution Note Easy O(n) O(1)
No.905 Sort Array By Parity Solution Note Easy O(n) O(1)
No.896 Monotonic Array Solution Note Easy O(n) O(1)
No.243 Shortest Word Distance Solution Note Easy O(n) O(1)
No.448 Find All Numbers Disappeared in an Array Solution Note Easy O(n) O(1)
No.821 Shortest Distance to a Character Solution Note Easy O(n) O(n)
No.001 Two Sum Solution Note Easy O(n) O(n)
No.167 Two Sum II Solution Note Easy O(n) O(1)
No.170 Two Sum III Solution Note Easy O(n) O(1)
No.867 Transpose Matrix Solution Note Easy O(n) O(n)
No.860 Lemonade Change Solution Note Easy O(n) O(n)
No.849 Maximize Distance to Closest Person Solution Note Easy O(n) O(1)
No.840 Magic Squares In Grid Solution Note Easy O(n) O(1)
No.283 Move Zeroes Solution Note Easy O(n) O(1)
No.015 3sum Solution Note Easy O(n^2) O(n)
No.560 Subarray Sum Equals k Solution Note Medium O(n) O(1) prefix sum
No.325 Maximum Size Subarray Sum Equals k Solution Note Medium O(n) O(n) prefix sum
No.930 Binary Subarrays With Sum Solution Note Medium O(n) O(n) prefix sum
No.674 Longest Continuous Increasing Subsequence Solution Note Easy O(n) O(1)
No.031 Next Permutation Solution Note Medium O(nlogn) O(1)
No.422 Valid Word Square Solution Note Easy O(n^2) O(1)
No.349 Intersection of Two Arrays Solution Note Easy O(n) O(1)
No.724 Find Pivot Index Solution Note Easy O(n) O(1)
No.747 Largest Number At Least Twice of Others Solution Note Easy O(n) O(1)
No.498 Diagonal Traverse Solution Note Medium O(n) O(n)
No.561 Array Partition I Solution Note Easy O(nlogn) O(1)
No.485 Max Consecutive Ones Solution Note Easy O(n) O(1)
No.1086 High Five Solution Note Easy O(n^2logn) O(n)
No.1064 Fixed Point Solution Note Easy O(n) O(n)
No.832 Flipping an Image Solution Note Easy O(n) O(n)
No.053 Maximum Subarray Solution Note Easy O(n) O(n) cum sum
No.240 Search a 2D Matrix II Solution Note Easy O(N+M) O(1)
No.961 N-Repeated Element in Size 2N Array Solution Note Easy O(n) O(n)
No.977 Squares of a Sorted Array Solution Note Easy O(n) O(n)
No.016 3Sum Closest Solution Note Medium O(n^2) O(1)
No.1207 Unique Number of Occurrences Solution Note Easy O(n) O(n)
No.338 Counting Bits Solution Note Medium O(n) O(n)
No.259 3sum Smaller Solution Note Medium O(n^2) O(1)
No.1007 Minimum Domino Rotations For Equal Row Solution Note Medium O(n) O(1)
No.041 First Missing Positive Solution Note Hard O(n) O(1)
No.229 Majority Element II Solution Note Hard O(n) O(n)
No.923 3Sum With Multiplicity Solution Note Meidum O(n^2) O(n)
No.891 Sum of Subsequence Widths Solution Note Hard O(n^2) O(n)
No.900 RLE Iterator Solution Note Medium O(n) O(n)
No.228 Summary Ranges Solution Note Medium O(n) O(n)
No.665 Non-decreasing Array Solution Note Easy O(n) O(1)
No.463 Island Perimeter Solution Note Easy O(n) O(1)
No.948 Bag of Tokens Solution Note Medium O(n) O(1)
No.667 Beautiful Arrangement II Solution Note Medium O(n) O(n)
No.419 Battleships in a Board Solution Note Medium O(nm) O(1)
No.1014 Best Sightseeing Pair Solution Note Medium O(n) O(1)
No.122 Best Time to Buy and Sell Stock II Solution Note Easy O(n) O(1)
No.080 Remove Duplicates from Sorted Array II Solution Note Medium O(n) O(1)
No.525 Contiguous Array Solution Note Medium O(n) O(n)
No.054 Spiral Matrix Note Medium O(n) O(n)
No.547 Number of Provinces Note Medium O(n^2) O() Union Found
No.566 Reshape the Matrix Note Medium O(n^2) O()
No.073 Set Matrix Zeroes Note Medium O(nm) O()
No.128 Longest Consecutive Sequence Note Medium O(n) O(n)
No.043 Multiply Strings Note Medium O(nm) O(n)
No.048 Rotate Image Note Medium O(nm) O(nm)

String

NO. Title Solution Note Difficulty Time Space Tag
No.014 Longest Common Prefix Solution Note Easy O(n) O(1) String
No.028 Implement strStr() Solution Note Easy O(n + k) O(1) kmp
No.038 Count and Say Solution Note Easy O(n * 2) O(1) iteration
No.058 Length of Last Word Solution Note Easy O(n) O(1) count from back
No.067 Add Binary Solution Note Easy O(n) O(1) construction number
No.125 Valid Palindrome Solution Note Easy O(n) O(n)
No.165 Compare Version Numbers Solution Note Easy O(n) O(n)
No.434 Number of Segments in a String Solution Note Easy O(n) O(1)
No.443 String Compression Solution Note Easy O(n) O(1) many pointer
No.459 Repeated Substring Pattern Solution Note Easy O(n) O(1) kmp
No.006 ZigZag Conversion Solution Note Meduim O(n * k) O(1) String
No.521 Longest Uncommon Subsequence I Solution Note Easy O(n * k) O(1) String
No.680 Valid Palindrome II Solution Note Easy O(n) O(1) String
No.681 Next Closest Time Solution Note Medium O(4^4) O(1) DFS
No.771 Jewels and Stones Solution Note Easy O(n) O(n)
No.482 License Key Formatting Solution Note Easy O(n) O(n)
No.344 Reverse String Solution Note Easy O(n) O(1)
No.412 Fizz Buzz Solution Note Easy O(n) O(1)
No.005 Longest Palindromic Substring Solution Note Medium O(n^2) O(1)
No.819 Most Common Word Solution Note Easy O(n) O(n)
No.929 Unique Email Addresses Solution Note Easy O(n^2) O(n)
No.535 Encode and Decode TinyURL Solution Note Meduim O(n) O(n)
No.271 Encode and Decode Strings Solution Note Meduim O(n) O(n)
No.003 Longest Substring Without Repeating Characters Solution Note Meduim O(n) O(n)
No.293 Flip Game Solution Note Easy O(n) O(n)
No.604 Design Compressed String Iterator Solution Note Easy O(n) O(n) Iterator
No.008 String to Integer (atoi) Solution Note Meduim O(n) O(n)
No.151 Reverse Words in a String Solution Note Meduim O(n) O(n)
No.557 Reverse Words in a String III Solution Note Easy O(n) O(1)
No.1108 Defanging an IP Address Solution Note Easy O(n) O(1)
No.1180 Count Substrings with Only One Distinct Letter Solution Note Easy O(n) O(1)
No.1134 Armstrong Number Solution Note Easy O(n) O(1)
No.709 To Lower Case Solution Note Easy O(n) O(1)
No.657 Robot Return to Origin Solution Note Easy O(n) O(n)
No.1221 Split a String in Balanced Strings Solution Note Easy O(n) O(1)
No.214 Shortest Palindrome Solution Note Hard O(n^2) O(n)
No.838 Push Dominoes Solution Note Medium O(n) O(n)
No.409 Push Dominoes Solution Note Easy O(n) O(n)
No.520 Detect Capital Solution Note Easy O(1) O(1)
No.791 Custom Sort String Solution Note Medium O(n) O(n)
No.1163 Last Substring in Lexicographical Order Solution Note Hard O(n^2) O(1)
No.1790 Check if One String Swap Can Make Strings Equal Solution Note Easy O(n) O(1)
No.438 Find All Anagrams in a String Solution Note Medium O(n) O(n)
No.383 Ransom Note Solution Note Medium O(n) O(n)
No.012 Integer to Roman Solution Note Medium O(n) O(n)
No.013 Roman to Integer Solution Note Easy O(n) O(n)
No.294 Flip Game II Solution Note Medium O(n^n) O(n)
No.157 Read N Characters Given Read4 Solution Note Easy O(n) O(n)

Linked List

NO. Title Solution Note Difficulty Time Space Tag
No.021 Merge Two Sorted Lists Solution Note Easy O(n) O(1) guard node
No.024 Swap Nodes in Pairs Solution Note Medium O(n) O(1) watch end
No.160 Intersection of Two Linked Lists Solution Note Easy O(n) O(1)
No.203 Remove Linked List Elements Solution Note Easy O(n) O(1)
No.237 Delete Node in a Linked List Solution Note Easy O(1) O(1) tricky,del
No.234 Palindrome Linked List Solution Note Meduim O(1) O(1) slow,quick pointer
No.206 Reverse Linked List Solution Note Easy O(n) O(1) reverse
No.002 Add Two Numbers Solution Note Medium O(n) O(1)
No.019 Remove Nth Node From End of List Solution Note Medium O(n) O(1) quick slow pointer
No.141 Linked List Cycle Solution Note Easy O(n) O(1) quick slow pointer
No.142 Linked List CycleII Solution Note Medium O(n) O(1) quick slow pointer
No.023 Merge k Sorted Lists Solution Note Hard O(nlogn) O(nk)
No.138 Copy List with Random Pointer Solution Note Medium O(n) O(n)
No.061 Rotate List Solution Note Medium O(n) O(n)
No.082 Remove Duplicates from Sorted List II Note Solution Medium O(n) O(n)
No.086 Partition List Note Solution Medium O(n) O(n)
No.092 Reverse Linked List II Note Solution Medium O(n) O(n)
No.143 Reorder List Note Medium Solution O(n) O(n)
No.876 Middle of the Linked List Note Solution Easy O(n) O(1)
No.061 Rotate List Note Solution Meduim O(n) O(1)

Stack

NO. Title Solution Note Difficulty Time Space Tag
No.020 Valid Parentheses Solution Note Easy O(n) O(1)
No.844 Backspace String Compare Solution Note Easy O(M+N) O(1)
No.155 Min Stack Solution Note Easy O(1) O(1)
No.173 Binary Search Tree Iterator Solution Note Medium O(n) O(1)
No.232 Implement Queue using Stacks Solution Note Easy O(n) O(1)
No.682 Baseball Game Solution Note Easy O(n) O(1)
No.056 Merge Intervals Solution Note Medium O(nlogn) O(n)
No.057 Insert Interval Solution Note Hard O(n) O(n)
No.394 Decode String Solution Note Medium O(n) O(n)
No.921 Minimum Add to Make Parentheses Valid Solution Note Medium O(n) O(n)
No.339 Nested List Weight Sum Solution Note Easy O(n) O(1) DFS
No.716 Max Stack Solution Note Easy O(n) O(1) DFS
No.946 Validate Stack Sequences Solution Note Medium O(n) O(n)
No.071 Simplify Path Solution Note Medium O(n) O(n)
No.150 Evaluate Reverse Polish Notation Solution Note Medium O(n) O(n)
No.225 Implement Stack using Queues Solution Note Easy O(n) O(n)
No.341 Flatten Nested List Iterator Solution Note Easy O(n) O(n)
No.439 Ternary Expression Parser Solution Note Medium O(n) O(n)
No.042 Trapping Rain Water Solution Note Hard O(n) O(n)
No.084 Largest Rectangle in Histogram Solution Note Hard O(n) O(n)
No.496 Next Greater Element I Solution Note Easy O(n) O(n)
No.1021 Remove Outermost Parentheses Solution Note Easy O(n) O(n)
No.1081 Smallest Subsequence of Distinct Characters Solution Note Medium O(n) O(n)
No.735 Asteroid Collision Solution Note Medium O(n) O(n)
No.328 Odd Even Linked List Solution Note Medium O(n) O(n)
No.678 Valid Parenthesis String Solution Note Medium O(n) O(n)
No.offer09 剑指 Offer 09. 用两个栈实现队列 Solution Note Easy O(n) O(n)
No.739 Daily Temperatures Solution Note Medium O(n) O(n)

Recursion

NO. Title Solution Note Difficulty Time Space Tag
No.101 Symmetric Tree Solution Note Easy O(n) O(h)
No.872 Leaf-Similar Trees Solution Note Easy O(n) O(n)
No.104 Maximum Depth of Binary Tree Solution Note Easy O(logn) O(1)
No.110 Balanced Binary Tree Solution Note Easy O(logn) O(1)
No.111 Minimum Depth of Binary Tree Solution Note Easy O(logn) O(1)
No.404 Sum of Left Leaves Solution Note Easy O(logn) O(1)
No.669 Trim a Binary Search Tree Solution Note Easy O(logn) O(1)
No.671 Second Minimum Node In a Binary Tree Solution Note Easy O(logn) O(1)
No.894 All Possible Full Binary Trees Solution Note Easy O(2^N) O(n)
No.1137 N-th Tribonacci Number Solution Note Easy O(n) O(n)
No.544 Output Contest Matches Solution Note Medium O(n) O(n)
No.247 Strobogrammatic Number II Solution Note Medium O(n) O(n)
No.721 Accounts Merge Solution Note Medium O(n^2) O(n)
No.988 Smallest String Starting From Leaf Solution Note Medium O(n) O(n)

Queue

NO. Title Solution Note Difficulty Time Space Tag
No.346 Moving Average from Data Stream Solution Note Easy O(1) O(w)
No.281 Zigzag Iterator Solution Note Medium O(n) O(n)
No.127 Word Ladder Solution Note Medium O(n) O(n)
No.622 Design Circular Queue Solution Note Medium O(n) O(n)
No.641 Design Circular Deque Solution Note Medium O(n) O(n)
No.933 Number of Recent Calls Solution Note Easy O(n) O(n)

Binary Tree

NO. Title Solution Note Difficulty Time Space Tag
No.226 Invert Binary Tree Solution Note Easy O(logn) O(h)
No.538 Convert BST to Greater Tree Solution Note Easy O(n) O(h)
No.543 Diameter of Binary Tree Solution Note Easy O(n) O(h)
No.687 Longest Univalue Path Solution Note Easy O(n) O(h)
No.897 Increasing Order Search Tree Solution Note Easy O(n) O(h)
No.617 Merge Two Binary Trees Solution Note Easy O(n) O(h)
No.606 Construct String from Binary Tree Solution Note Easy O(n) O(h)
No.572 Subtree of Another Tree Solution Note Easy O(n) O(h)
No.563 Binary Tree Tilt Solution Note Easy O(n^2)
No.094 Binary Tree Inorder Traversal Solution Note Medium O(n) O(n) Inorder Traversal
No.112 Path Sum Solution Note Easy O(n) O(1) DFS
No.257 Binary Tree Paths Solution Note Easy O(n) O(1) DFS
No.144 Binary Tree Preorder Traversal Solution Note Medium O(n) O(n) iteration traverse
No.145 Binary Tree Postorder Traversal Solution Note Hard O(n) O(n) iteration traverse
No.102 Binary Tree Level Order Traversal Solution Note Medium O(n) O(n) iteration traverse
No.250 Count Univalue Subtrees Solution Note Medium O(n) O(n)
No.106 Construct Binary Tree from Inorder and Postorder Traversal Solution Note Medium O(n) O(n) build tree
No.105 Construct Binary Tree from Inorder and Preorder Traversal Solution Note Medium O(n) O(n) build tree
No.116 Populating Next Right Pointers in Each Node Solution Note Medium O(n) O(n)
No.117 Populating Next Right Pointers in Each Node II Solution Note Medium O(n) O(n)
No.236 Lowest Common Ancestor of a Binary Tree Solution Note Medium O(n^2) O(n)
No.100 Same Tree Solution Note Medium O(n) O(1)
No.314 Binary Tree Vertical Order Traversal Solution Note Medium O(n) O(n)
No.637 Average of Levels in Binary Tree Solution Note Easy O(n) O(n)
No.103 Binary Tree Zigzag Level Order Traversal Solution Note Medium O(n) O(n)
No.114 Flatten Binary Tree to Linked List Solution Note Medium O(n) O(1) DFS
No.437 Path Sum III Solution Note Medium O(nlogn) O(1) DFS
No.965 Univalued Binary Tree Solution Note Easy O(n) O(1)
No.1022 Sum of Root To Leaf Binary Numbers Solution Note Easy O(n) O(1)
No.993 Cousins in Binary Tree Solution Note Easy O(n) O(1)
No.107 Binary Tree Level Order Traversal II Solution Note Easy O(n) O(n)
No.654 Maximum Binary Tree Solution Note Medium O(nlogn) O(n)
No.1008 Construct Binary Search Tree from Preorder Traversal Solution Note Medium O(nlogn) O(n)
No.701 Insert into a Binary Search Tree Solution Note Medium O(logn) O(n)
No.814 Binary Tree Pruning Solution Note Medium O(logn) O(n)
No.655 Print Binary Tree Solution Note Medium O(n) O(n)
No.988 Maximum Binary Tree II Solution Note Medium O(n) O(n)
No.1123 Lowest Common Ancestor of Deepest Leaves Solution Note Medium O(n) O(n)
No.199 Binary Tree Right Side View Solution Note Medium O(n) O(n)
No.1305 All Elements in Two Binary Search Trees Solution Note Medium O(n) O(n)
No.1382 Balance a Binary Search Tree Solution Note Medium O(n) O(n)
No.1038 Binary Search Tree to Greater Sum Tree Solution Note Medium O(n) O(n)
No.652 Find Duplicate Subtrees Solution Note Medium O(n) O(n)
No.1261 FFind Elements in a Contaminated Binary Tree Solution Note Medium O(n) O(n)
No.124 Binary Tree Maximum Path Sum Solution Note hard O(n) O(1)
No.035 Search Insert Position Solution Note hard O(logn) O(1)
No.099 Recover Binary Search Tree Solution Note Medium O(logn) O(1)
No.156 Binary Tree Upside Down Solution Note Medium O(logn) O(1)

Hash Table

NO. Title Solution Note Difficulty Time Space Tag
No.202 Happy Number Solution Note Easy O(n) O(n)
No.204 Count Primes Solution Note Easy O(n)
No.205 Isomorphic Strings Solution Note Easy O(n) O(n)
No.217 Contains Duplicate Solution Note Easy O(n) O(n)
No.219 Contains DuplicateII Solution Note Easy O(n) O(n)
No.246 Strobogrammatic Number Solution Note Easy O(n) O(n)
No.244 Shortest Word Distance II Solution Note Medium O(m+n) O(n)
No.249 Group Shifted Strings Solution Note Easy O(n) O(n)
No.266 Palindrome Permutation Solution Note Easy O(n) O(n)
No.288 Unique Word Abbreviation Solution Note Medium O(n) O(n)
No.299 Bulls and Cows Solution Note Medium O(n) O(n)
No.387 First Unique Character in a String Solution Note Easy O(n) O(n)
No.350 Intersection of Two Arrays II Solution Note Easy O(n) O(n)
No.049 Group Anagrams Solution Note Medium O(nklonk) O(n)
No.705 Design HashSet Solution Note Easy O(1) O(n)
No.599 Minimum Index Sum of Two Lists Solution Note Easy O(1) O(n)
No.359 Logger Rate Limiter Solution Note Easy O(1) O(n)
No.706 Design HashMap Solution Note Easy O(1) O(n)
No.380 Insert Delete GetRandom O(1) Solution Note Medium O(1) O(n)
No.981 Time Based Key-Value Store Solution Note Medium O(nlogn) O(n)
No.811 Subdomain Visit Count Solution Note Easy O(nm) O(n)
No.609 Find Duplicate File in System Solution Note Medium O(nk) O(n)
No.692 Top K Frequent Words Solution Note Medium O(nlogn) O(n)
No.1119 Remove Vowels from a String Solution Note Easy O(n) O(1)
No.1165 Single-Row Keyboard Solution Note Easy O(n) O(1)
No.760 Find Anagram Mappings Solution Note Easy O(n) O(n)
No.804 Unique Morse Code Words Solution Note Easy O(n) O(n)
No.1252 Cells with Odd Values in a Matrix Solution Note Easy O(n^2) O(n)
No.954 Array of Doubled Pairs Solution Note Easy O(n) O(n)
No.146 LRU Cache Solution Note Medium O(n) O(n)

Sort

NO. Title Solution Note Difficulty Time Space Tag
No.088 Merge Sorted Array Solution Note Medium O(n+m) O(1) three pointer
No.252 Meeting Room Solution Note Easy O(nlogn) O(1)
No.075 Sort Colors Solution Note Medium O(n) O(1) tri pointer
No.147 Insertion Sort List Solution Note Medium O(n^2) O(1)
No.148 Sort List Solution Note Medium O(nlog) O(1) list merge sort
No.179 Largest Number Solution Note Medium O(nlogn) O(1) cmp_to_key
No.253 Meeting Rooms II Solution Note Medium O(nlogn) O(n)
No.347 Top K Frequent Elements Solution Note Medium O(nlogn) O(n)
No.581 Shortest Unsorted Continuous Subarray Solution Note Easy O(n) O(1)
No.1051 Height Checker Solution Note Easy O(nlogn) O(n)
No.207 Course Schedule Solution Note Meduim O(n) O(n)
No.912 Sort an Array Solution Note Meduim O(nlogn) O(n)
No.406 Queue Reconstruction by Height Solution Note Meduim O(nlogn) O(n)

Heap

NO. Title Solution Note Difficulty Time Space Tag
No.264 Ugly Number II Solution Note Medium O(n) O(1)
No.313 Super Ugly Number Solution Note Medium O(n * k) O(n * k)
No.378 Kth Smallest Element in a Sorted Matrix Solution Note Medium O(nklogn) O(n)
No.215 Kth Largest Element in an Array Solution Note Medium O(n+klogn) O(n)
No.937 K Closest Points to Origin Solution Note Medium O(klogn) O(n)
No.239 Sliding Window Maximum Solution Note Hard O(nlogk) O(n)
No.1046 Last Stone Weight Solution Note Easy O(nlogn) O(n)

Binary Search

NO. Title Solution Note Difficulty Time Space Tag
No.855 Exam Room Solution Note Medium O(n) O(n)
No.374 Guess Number Higher or Lower Solution Note Easy O(logn) O(1)
No.475 Heaters Solution Note Easy O(nlogn) O(1)
No.744 Find Smallest Letter Greater Than Target Solution Note Easy O(n) O(1)
No.852 Peak Index in a Mountain Array Solution Note Easy O(n) O(1)
No.050 Pow(x, n) Solution Note Medium O(logn) O(1)
No.153 Find Minimum in Rotated Sorted Array Solution Note Medium O(logn) O(n)
No.704 Binary Search Solution Note Easy O(logn) O(1)
No.1201 Ugly Number III Solution Note Medium O(logn) O(1)
No.074 Search a 2D Matrix Solution Note Medium O(logn) O(1)
No.162 Find Peak Element Solution Note Medium O(logn) O(1)

Binary Search Tree

NO. Title Solution Note Difficulty Time Space Tag
No.235 Lowest Common Ancestor of a Binary Search Tree Solution Note Easy O(logn) O(1)
No.270 Closest Binary Search Tree Value Solution Note Easy O(logn) O(1)
No.653 Two Sum IV - Input is a BST Solution Note Easy O(n) O(n)
No.098 Validate Binary Search Tree Solution Note Easy O(n) O(n)
No.278 First Bad Version Solution Note Easy O(logn) O(1)
No.033 Search in Rotated Array Solution Note Medium O(logn) O(1)
No.173 Binary Search Tree Iterator Solution Note Medium O(1) O(h)
No.938 Range Sum of BST Solution Note Easy O(n) O(1)
No.700 Search in a Binary Search Tree Solution Note Easy O(n) O(1)
No.108 Convert Sorted Array to Binary Search Tree Solution Note Easy O(n) O(1)
No.530 Minimum Absolute Difference in BST Solution Note Easy O(n) O(1)
No.783 Minimum Distance Between BST Nodes Solution Note Easy O(n) O(1)
No.501 Find Mode in Binary Search Tree Solution Note Easy O(n) O(n)
No.776 Split BST Solution Note Medium O(logn) O(n)
No.426 Convert Binary Search Tree to Sorted Doubly Linked List Solution Note Medium O(n) O(1)
No.230 Kth Smallest Element in a BST Solution Note Medium O(n) O(1)

N-ary Tree

NO. Title Solution Note Difficulty Time Space Tag
No.589 N-ary Tree Preorder Traversal Solution Note Easy O(n) O(n)
No.590 N-ary Tree Postorder Traversal Solution Note Easy O(n) O(n)
No.429 N-ary Tree Levelorder Traversal Solution Note Easy O(n) O(n)
No.559 Maximum Depth of N-ary Tree Solution Note Easy O(n) O(n)
No.208 Implement Trie (Prefix Tree) Solution Note Medium O(k) O(n) trie
No.677 Map Sum Pairs Solution Note Medium trie
No.648 Replace Words Solution Note Medium O(n) O(n) trie
No.211 Add and Search Word - Data structure design Solution Note Medium O(n) O(n) trie
No.1233 Remove Sub-Folders from the Filesystem Solution Note Medium O(n) O(n) trie
No.720 Longest Word in Dictionary Solution Note Easy O(n^2) O(n) trie

Math

NO. Title Solution Note Difficulty Time Space Tag
No.263 Ugly Number Solution Note Easy O(n) O(1)
No.238 Product of Array Except Self Solution Note Medium O(n) O(n)
No.621 Task Scheduler Solution Note Medium O(n) O(1)
No.326 Power of Three Solution Note Easy O(n) O(1)
No.892 Surface Area of 3D Shapes Solution Note Easy O(n) O(1)
No.1266 Minimum Time Visiting All Points Solution Note Easy O(n) O(1)
No.1281 Subtract the Product and Sum of Digits of an Integer Solution Note Easy O(n) O(n)
No.1232 Check If It Is a Straight Line Solution Note Easy O(n) O(1)
No.258 Add Digits Solution Note Easy O(n) O(n)
No.069 Sqrt(x) Solution Note Easy O(n) O(1)
No.1033 Moving Stones Until Consecutive Solution Note Easy O(1) O(1)
No.1342 Number of Steps to Reduce a Number to Zero Solution Note Easy O(n) O(1)
No.504 Base 7 Solution Note Easy O(n) O(1)
No.470 Implement Rand10() Using Rand7() Solution Note medium O(1) O(1)
No.154 Find Minimum in Rotated Sorted Array II Solution Note hard O(n) O(1)
No.007 Reverse Integer Solution Note Medium O(1) O(1)

Graph

NO. Title Solution Note Difficulty Time Space Tag

Backtracking

NO. Title Solution Note Difficulty Time Space Tag
No.017 Letter Combinations of a Phone Number Solution Note Medium O(n) O(n)
No.093 Restore IP Addresses Solution Note Medium O(n^4) O(n)
No.078 Subset Solution Note Medium O(2^n) O(n)
No.078 SubsetII Solution Note Medium O(2^n) O(n)
No.046 Permutations Solution Note Medium O(n!) O(n)
No.047 PermutationsII Solution Note Medium O(n!) O(n)
No.079 Word Search Solution Note Medium O(n^2) O(n)
No.022 Generate Parentheses Solution Note Medium O(n!) O(n)
No.039 Combination Sum Solution Note Medium O(n!) O(n)
No.784 Letter Case Permutation Solution Note Easy O(n*2) O(n) + O(n*2)
No.1079 Letter Tile Possibilities Solution Note Easy O(2*n) O(2*n)
No.077 Combinations Solution Note Medium O(2^n) O(2^n)
No.040 Combination Sum II Solution Note Medium O(n^n) O(n^n)
No.695 Max Area of Island Solution Note Medium O(n^2) O(n^2)

BFS

NO. Title Solution Note Difficulty Time Space Tag
No.200 Number of Islands Solution Note Medium O(n) O(n) BFS
No.133 Clone Graph Solution Note Medium O(n) O(n) BFS
No.1162 As Far from Land as Possible Solution Note Medium O(n) O(n) BFS

DFS

NO. Title Solution Note Difficulty Time Space Tag
No.1145 Binary Tree Coloring Game Solution Note Medium O(n) O(1)
No.863 All Nodes Distance K in Binary Tree Solution Note Medium O(n) O(n)
No.1034 Coloring A Border Solution Note Medium O(n) O(n)
No.306 Additive Number Solution Note Medium O(n^2) O(n)
No.842 Split Array into Fibonacci Sequence Solution Note Medium O(n^2) O(n)
No.399 Evaluate Division Solution Note Medium O(n) O(n) DFS
No.526 Beautiful Arrangement Solution Note Medium O(n!) O(n) DFS
No.733 Flood Fill Solution Note Easy O(n^2) O(1)

Greedy

NO. Title Solution Note Difficulty Time Space Tag
No.455 Assign Cookies Solution Note Easy O(nlogn) O(1)
No.055 Jump Game Solution Note Medium O(n) O(1)
No.2086 Minimum Number of Buckets Required to Collect Rainwater from Houses Solution Note Medium O(n) O(1)

Divide and Conquer

NO. Title Solution Note Difficulty Time Space Tag
No.932 Beautiful Array Solution Note Medium O(nlogn) O(n)
No.241 Different Ways to Add Parentheses Solution Note Medium O(nlogn) O(n)

Dynamic Programming

NO. Title Solution Note Difficulty Time Space Tag
No.091 Decode Ways Solution Note Medium O(n) O(1)
No.062 Unique Paths Solution Note Medium O(n^2) O(n)
No.070 Combing Stairs Solution Note Medium O(n) O(n)
No.926 Flip String to Monotone Increasing Solution Note Medium O(n) O(n)
No.845 Longest Mountain in Array Solution Note Medium O(n) O(1)
No.139 Longest Mountain in Array Solution Note Medium O(n) O(1)
No.300 Longest Increasing Subsequence Solution Note Medium O(nlogn) O(1)
No.198 House Robber Solution Note Easy O(n) O(n)
No.213 House Robber II Solution Note Medium O(n) O(n)
No.746 Min Cost Climbing Stairs Solution Note Easy O(n) O(n)
No.790 Domino and Tromino Tiling Solution Note Medium O(n) O(n)
No.801 Minimum Swaps To Make Sequences Increasing Solution Note Medium O(n) O(n)
No.718 Maximum Length of Repeated Subarray Solution Note Medium O(n*m) O(n*m)
No.1143 Longest Common Subsequence Solution Note Medium O(n*m) O(n*m)
No.583 Delete Operation for Two Strings Solution Note Medium O(n*m) O(n*m)
No.1092 Shortest Common Supersequence Solution Note Hard O(n*m) O(n*m)
No.032 Longest Valid Parentheses Solution Note Hard O(n) O(n)
No.152 Maximum Product Subarray Solution Note Medium O(n) O(1)
No.647 Palindromic Substrings Solution Note Medium O(n^2) O(1)
No.416 Partition Equal Subset Sum Solution Note Medium O(n^2) O(n)
No.279 Perfect Squares Solution Note Medium O(n^2) O(n)
No.418 Sentence Screen Fitting Solution Note Medium O(n^2) O(n)
No.070 Climbing Stairs Solution Note Medium O(n) O(n)
No.6305 Climbing Stairs Solution Note Medium O(n) O(1)
No.322 Coin Change Solution Note Medium O(n) O(1)
No.064 Minimum Path Sum Solution Note Medium O(n*m) O(m*n)
No.343 Integer Break Solution Note Medium O(n^2) O(n)

Design

NO. Title Solution Note Difficulty Time Space Tag
No.1063 Design Parking System Solution Note Easy O(n) O(1)

SQL Schema

NO. Title Solution Note Difficulty Time Space Tag
No.1068 Product Sales Analysis I Solution Note Easy O(n*n) O(n*n)
No.1069 Product Sales Analysis II Solution Note Easy O(n) O(n)
No.511 Game Play Analysis I Solution Note Easy O(n) O(n)
No.595 Big Countries Solution Note Easy O(n) O(n)
No.1173 Immediate Food Delivery I Solution Note Easy O(n) O(n)
No.613 Shortest Distance in a Line Solution Note Easy O(n) O(n)
No.1050 Actors and Directors Who Cooperated At Least Three Times Solution Note Easy O(n) O(n)
No.627 Swap Salary Solution Note Easy O(n) O(1)
No.1082 Sales Analysis I Solution Note Easy O(n) O(1)
No.620 Not Boring Movies Solution Note Easy O(n) O(1)

剑指offer

NO. Title Solution Note Difficulty Time Space Tag
No.LZOF_03 数组中重复的数字 Solution Note Easy O(n) O(1)
No.LZOF_04 二维数组中的查找 Solution Note Easy O(nlogn) O(1)
No.LZOF_05 替换空格 Solution Note Easy O(n) O(n)
No.LZOF_06 从尾到头打印链表 Solution Note Easy O(n) O(n)
No.LZOF_07 重建二叉树 Solution Note Medium O(n) O(n)
No.LZOF_09 用两个栈实现队列 Solution Note Easy O(n) O(n)
No.LZOF_10 斐波那契数列 Solution Note Easy O(n) O(n)
No.LZOF_10-2 青蛙跳台阶问题 Solution Note Easy O(n) O(n)
No.LZOF_11 旋转数组的最小数字 Solution Note Easy O(n) O(1)
No.LZOF_12 矩阵中的路径 Solution Note Medium O(n*2) O(n)
No.LZOF_13 机器人的运动范围 Solution Note Medium O(n*2) O(n)
No.LZOF_14 剪绳子 Solution Note Medium O(n*2) O(n)
No.LZOF_14_II 剪绳子II Solution Note Medium O(n*2) O(n)
No.LZOF_15 二进制中1的个数 Solution Note Medium O(n) O(1)
No.LZOF_16 数值的整数次方 Solution Note Medium O(logn) O(1)
No.LZOF_17 打印从1到最大的n位数 Solution Note Easy O(n) O(n)
No.LZOF_18 删除链表的节点 Solution Note Easy O(n) O(n)
No.LZOF_19 正则表达式匹配 Solution Note Hard O(nm) O(nm)
No.LZOF_21 调整数组顺序使奇数位于偶数前面 Solution Note Easy O(n) O(1)
No.LZOF_22 链表中倒数第k个节点 Solution Note Easy O(n) O(1)
No.LZOF_24 反转链表 Solution Note Easy O(n) O(1)
No.LZOF_25 合并两个排序的链表 Solution Note Easy O(n) O(1)
No.LZOF_26 树的子结构 Solution Note Easy O(n^2) O(1)
No.LZOF_27 二叉树的镜像 Solution Note Easy O(n) O(1)
No.LZOF_28 对称的二叉树 Solution Note Easy O(n) O(1)
No.LZOF_29 顺时针打印矩阵 Solution Note Easy O(n) O(n)
No.LZOF_30 包含min函数的栈 Solution Note Easy O(1) O(1)
No.LZOF_31 栈的压入、弹出序列 Solution Note Medium O(n) O(n)
No.LZOF_32 从上到下打印二叉树 Solution Note Medium O(n) O(n)
No.LZOF_32_II 从上到下打印二叉树 II Solution Note Medium O(n) O(n)
No.LZOF_32_III 从上到下打印二叉树 III Solution Note Medium O(n) O(n)
No.LZOF_33 二叉搜索树的后序遍历序列 Solution Note Medium O(n) O(n)
No.LZOF_34 二叉树中和为某一值的路径 Solution Note Medium O(n) O(n)
No.LZOF_35 复杂链表的复制 Solution Note Medium O(n) O(n)
No.LZOF_36 二叉搜索树与双向链表 Solution Note Medium O(n) O(1)
No.LZOF_37 序列化二叉树 Solution Note Hard O(n) O(n)
No.LZOF_38 字符串的排列 Solution Note Medium O(n!) O(n)
No.LZOF_39 数组中出现次数超过一半的数字 Solution Note Easy O(nlogn) O(1)
No.LZOF_40 最小的k个数 Solution Note Easy O(nlogk) O(1)
No.LZOF_41 连续子数组的最大和 Solution Note Easy O(n) O(1)
No.LZOF_49 丑数 Solution Note Medium O(n) O(1)
No.LZOF_48 最长不含重复字符的子字符串 Solution Note Medium O(n) O(n)
No.LZOF_47 礼物的最大价值 Solution Note Medium O(n) O(n*2)
No.LZOF_46 把数字翻译成字符串 Solution Note Medium O(n*2) O(1)
No.LZOF_45 把数组排成最小的数 Solution Note Medium O(nlogn) O(n)
No.LZOF_50 第一个只出现一次的字符 Solution Note Easy O(n) O(n)
No.LZOF_52 两个链表的第一个公共节点 Solution Note Easy O(n) O(1)
No.LZOF_53_I 在排序数组中查找数字I Solution Note Easy O(logn) O(1)
No.LZOF_53_II 0~n-1中缺失的数字 Solution Note Easy O(n) O(1)
No.LZOF_54 二叉搜索树的第k大节点 Solution Note Easy O(nlogk) O(n)
No.LZOF_55_I 二叉树的深度 Solution Note Easy O(n) O(1)
No.LZOF_55_II 平衡二叉树 Solution Note Easy O(n) O(1)
No.LZOF_56_I 数组中数字出现的次数 Solution Note medium O(n) O(1)
No.LZOF_57 和为s的两个数字 Solution Note Easy O(n) O(1)
No.LZOF_57_II 和为s的连续正数序列 Solution Note Easy O(n) O(n)
No.LZOF_58_I 翻转单词顺序 Solution Note Easy O(n) O(1)
No.LZOF_58_II 左旋转字符串 Solution Note Easy O(n) O(1)
No.LZOF_59_I 滑动窗口的最大值 Solution Note Easy O(n) O(N)
No.LZOF_59_II 队列的最大值 Solution Note Medium O(1) O(N)
No.LZOF_68_I 二叉搜索树的最近公共祖先 Solution Note Easy O(n) O(n)
No.LZOF_68_II 二叉树的最近公共祖先 Solution Note Medium O(n) O(n)
No.LZOF_67 把字符串转换成整数 Solution Note Easy O(n) O(n)
No.LZOF_66 构建乘积数组 Solution Note Easy O(n) O(n)
No.LZOF_65 不用加减乘除做加法 Solution Note Easy O(n) O(n)
No.LZOF_63 股票的最大利润 Solution Note Medium O(n) O(1)
No.LZOF_65 n个骰子的点数 Solution Note Easy O(n) O(1)
No.LZOF_62 圆圈中最后剩下的数字 Solution Note Easy O(n) O(n)
No.LZOF_61 扑克牌中的顺子 Solution Note Easy O(n) O(n)
No.LZOF_64 求1+2+...+n Solution Note Medium O(n) O(n)
No.LZOF_56_II 数组中数字出现的次数 II Solution Note Medium O(n) O(1)
No.LZOF41 数据流中的中位数 Solution Note Hard O(n^2) O(n)

程序员面试经典

NO. Title Solution Note Difficulty Time Space Tag
No.CXY_01_01 判定字符是否唯一 Solution Note Easy O(n) O(n)
No.CXY_01_02 判定是否互为字符重排 Solution Note Easy O(n) O(n)
No.CXY_01_03 URL化 Solution Note Easy O(n) O(1)
No.CXY_01_04 回文排列 Solution Note Easy O(n) O(n)
No.CXY_01_05 一次编辑 Solution Note Medium O(n) O(1)
No.CXY_01_06 字符串压缩 Solution Note Easy O(n) O(n)
No.CXY_01_07 旋转矩阵 Solution Note Medium O(n) O(1)
No.CXY_01_08 零矩阵 Solution Note Medium O(n^2) O(1)
No.CXY_01_09 字符串轮转 Solution Note Easy O(s1+s2) O(n)
No.CXY_02_01 移除重复节点 Solution Note Easy O(n) O(n)
No.CXY_02_02 返回倒数第 k 个节点 Solution Note Easy O(n) O(n)
No.CXY_02_03 删除中间节点 Solution Note Easy O(1) O(1)
No.CXY_02_04 分割链表 Solution Note Medium O(n) O(1)
No.CXY_02_05 链表求和 Solution Note Medium O(n) O(n)
No.CXY_02_06 回文链表 Solution Note Medium O(n) O(1)
No.CXY_02_07 链表相交 Solution Note Easy O(n) O(1)
No.CXY_02_08 环路检测 Solution Note Easy O(n) O(1)
No.CXY_03_01 三合一 Solution Note Easy O(n) O(n)
No.CXY_03_02 栈的最小值 Solution Note Easy O(n) O(1)
No.CXY_03_03 堆盘子 Solution Note Medium O(n) O(n)
No.CXY_03_04 化栈为队 Solution Note Easy O(n) O(n)
No.CXY_03_05 栈排序 Solution Note Medium O(n) O(n)
No.CXY_03_06 动物收容所 Solution Note Easy O(n) O(n)
No.CXY_04_01 节点间通路 Solution Note Medium O(n) O(n)
No.CXY_04_02 最小高度树 Solution Note Easy O(n) O(n)
No.CXY_04_03 特定深度节点链表 Solution Note Medium O(n) O(n)
No.CXY_04_04 检查平衡性 Solution Note Easy O(n) O(n)
No.CXY_04_05 合法二叉搜索树 Solution Note Medium O(n) O(n)
No.CXY_04_06 后继者 Solution Note Medium O(n) O(n)
No.CXY_04_08 首个共同祖先 Solution Note Medium O(n) O(n)
No.CXY_04_10 检查子树 Solution Note Medium O(n^2) O(n)
No.CXY_04_12 求和路径 Solution Note Medium O(n) O(n)
No.CXY_08_01 三步问题 Solution Note Easy O(n) O(n)
No.CXY_08_02 迷路的机器人 Solution Note Medium O(100^2) O(n)
No.CXY_08_03 魔术索引 Solution Note Easy O(n) O(1)
No.CXY_08_04 幂集 Solution Note Medium O(n^2) O(n)
No.CXY_08_05 递归乘法 Solution Note Medium O(n) O(n)
No.CXY_08_06 汉诺塔问题 Solution Note Easy O(2^n) O(n)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages