/AlgoDaily

Algorithms Practice in Go, Python and JS

Primary LanguageGo

AlgoDaily

I believe that practising algorithms every day is a long-term investment in my life.

Languages

  • golang, python, js

Target topics

  • Binary Search
  • Binary Search Tree
  • Binary Tree
  • N-aray Tree(Trie)
  • Graph(Dijkstra, Union Find, Kruskal, Prim's, Minimum Spanning Tree, Topological Ordering...etc)
  • Stack
  • Queue
  • Array
  • Sorting
  • Hash Table
  • Heap
  • Linked list
  • Bit Operation
  • Dynamic programming(Kadan's)
  • Backtracking(Permutations & Combinations & Subsets...etc)
  • Math
  • and more...

Questions from

Started on September 1st 2018

Day Task Type From remarks
1 binary search binary search leetcode 704 πŸ“Œ
2 sqrt(x) binary search leetcode 69
3 search in rotated sorted array binary search leetcode 33 πŸ“Œ
4 Find Peak Element binary search leetcode 162
5 Find Minimum in Rotated Sorted Array binary search leetcode 153 πŸ“Œ
6 Find Minimum in Rotated Sorted Array binary search leetcode 153 πŸ“Œ2 extra solutions for day5
7 Search for a Range binary search leetcode 34
8 Find K Closest Elements binary search leetcode 658
9 Closest Binary Search Tree Value binary search, tree leetcode 270 1st attemp 10sep2018, 2nd 20jan2019
10 Closest Binary Search Tree Value binary search, tree leetcode 270 revise day9 problems with legit recursive & iterative dfs
11 Breadth First Search tree basics: revise breadth first search
12 Search in a Sorted Array of Unknown Size binary search leetcode 702 golang unsupported on leetcode, do it in python instead
13 Pow(x, n) binary search leetcode 50 i failed to come up with the solution myself, the solution is mind blowing
14 Valid Perfect Square binary search leetcode 50
15 Find Smallest Letter Greater Than Target binary search leetcode 50
16 Lower & Upper Bound Binary Searches binary search my medium article
17 Intersection of Two Arrays binary search, hashtable leetcode 349
18 Intersection of Two Arrays II binary search, hashtable leetcode 350
19 Two Sum II binary search, hashtable leetcode 167
20 Find the Duplicate Number binary search, hashtable leetcode 287
21 Find Minimum in Rotated Sorted Array II binary search leetcode 154 πŸ“Œ very hard classic question
22 Validate Binary Search Tree binary tree leetcode 98 πŸ“Œ 1st 25sep2018 2nd 18mar2019
23 Inorder Successor in BST binary tree leetcode 285 my O(logn) solution is unique ✌🏻, tho the suggested solution is jaw-dropping and much more terse
24 Depth First Search binary tree
25 Binary Search Tree Iterator BST leetcode 173 my first solution was super slow tho it passes the OJ. The suggested solution is awesome
26 Search in a Binary Search Tree binary tree leetcode 700
27 Iterative inorder traversal on BST binary tree πŸ“Œ
28 Pre & post order traversal on BST binary tree πŸ“Œ
29 Insert into a Binary Search Tree BST leetcode 701 recursive & iterative
30 Delete a node in a BST BST leetcode 450 my 1st attempt was super discursive LOL
31 Delete a node in a BST BST leetcode 450 πŸ“Œ classic approach, bottom up recursion to replace the target node with its successor
32 Pre & In & Post Order Depth First Search tree revision on tree traversals
33 Kth Largest Element in a Stream BST leetcode 703 my first attempt "Time Limit Exceeded"
34 Kth Largest Element in a Stream BST leetcode 703 learned what is heap and did a heap solution
35 Lowest Common Ancestor of a Binary Search Tree BST leetcode 235 ⭐
36 Convert Sorted Array to Binary Search Tree BST leetcode 108
37 Balanced Binary Tree Tree leetcode 110
38 Contains Duplicate III array, BST, bucket leetcode 220 🧐 I don't understand the suggested solutions in BST and Bucket
39 Lowest Common Ancestor of a Binary Tree tree leetcode 226 ⭐ even O(2n) leads to Time Limit Exceeded, what a draconian challenge. checkout suggestion
40 Recursive Binary Search binary tree to understand the logic of recursion
41 Binary Tree Preorder Traversal binary tree
42 N-ary Tree Preorder Traversal N-ary tree leetcode 589
43 Binary Tree Inorder Traversal binary tree leetcode 94 the iterative solution is mind blowing
44 Binary Tree Postorder Traversal binary tree leetcode 145
45 Binary Tree Postorder Traversal binary tree leetcode 145 to understand the trick of the iterative solution
46 N-ary Tree Postorder Traversal N-ary tree leetcode 590
47 Binary Tree Level Order Traversal binary tree leetcode 102
48 N-ary Tree Level Order Traversal N-ary tree leetcode 429
49 Maximum Depth of Binary Tree binary tree leetcode 104
50 Maximum Depth of N-ary Tree N-ary tree leetcode 559
51 Symmetric Tree binary tree leetcode 101
52 Path Sum binary tree leetcode 112 iterative, recursive
53 Populating Next Right Pointers in Each Node I & II binary tree leetcode 116 actaully my initial solution is O(n) in complexity and use only O(1) in space, it is good enough to apply on II as well
54 Construct String from Binary Tree binary tree leetcode 606
55 Binary Tree Right Side View binary tree leetcode 199 2nd & 3rd attempt beat 100%
56 Construct Binary Tree from Inorder and Postorder Traversal binary tree leetcode 106
57 Construct Binary Tree from Preorder and Inorder Traversal binary tree leetcode 105
58 Construct Binary Tree from Preorder and Postorder Traversal binary tree leetcode 889 similar to day 56,57
59 Serialize and Deserilize Binary Tree
tree leetcode 889 serialize
60 Serialize and Deserilize Binary Tree binary tree leetcode 297 deserialize ✌🏻 this is a HARD question, i made it finally. this concept is very important πŸ“Œ
61 Serialize and Deserilize BST binary tree leetcode 449 😎 actually the concept of day60 is applicable here in BST
62 Serialize and Deserilize N-ary Tree binary tree leetcode 428 My naive approach was to use json, it actaully beats 42.29%...not bad πŸ˜‚ The suggested approach is astonishing 😳
63 Encode N-ary Tree to Binary Tree binary tree leetcode 431 encode βœ… decode πŸ€”
64 Encode N-ary Tree to Binary Tree binary tree leetcode 431 encode βœ… decode βœ… This question is pretty hard, it spent me 2 nights but it was worth doing.
65 Implement Trie (Prefix Tree) trie leetcode 208 insert
66 Implement Trie (Prefix Tree) trie leetcode 208 search, startwith
67 Map Sum Pairs trie leetcode 677 i like this
68 Replace Words string leetcode 648 my 1st hasty solution got passed, but i think it is incorrect so i made another one
69 Add and Search Word Data Structure string leetcode 211 AddWord
70 Add and Search Word Data Structure string leetcode 211 Search
71 Implement Trie (Prefix Tree) trie leetcode 208 another approach: array instead of hashtable and it is faster
72 Design Search Autocomplete System trie leetcode 642 constructor and insert
73 Design Search Autocomplete System trie leetcode 642 search(incomplete)
73 Design Search Autocomplete System trie leetcode 642 WTF with leetcode
74 Implement Trie (Prefix Tree) trie leetcode 208 just do it again with python cos im gonna try autocomplete with python
75 Design Search Autocomplete System trie leetcode 642 do the same thing in python and i got accepted, fuck leetcode
76 Design Search Autocomplete System trie leetcode 642 i finally made it in golang and I BEAT 100% submissions
77 Word Search trie leetcode 79 my 1st attempt got TLE, it is weird cos the notion is correct
78 Word Search II trie leetcode 212 its actually a follow-up of day77 problem, tho my snippet can only beats 14% 😭
79 Moving Average from Data Stream queue leetcode 346 2 solutions
80 Design Circular Queue queue leetcode 622 front, rear, isEmpty, isFull, enqueue, dequeue
81 Walls and Gates queue/tree leetcode 286 it is actually a lot easier to implement using dfs than using queue
82 Number of Islands queue/tree leetcode 200 1st attempt:dfs beats 9.4%, 2nd attempt:dfs beats 100%, 3rd attempt:bfs beats 50.43%
83 Open the Lock queue/tree leetcode 752 very interesting question, 1st attempt beats 5%, 2nd attempt beats 85%
84 Perfect Squares queue/tree leetcode 279 bfs: 204ms beats 36%
85 Count Primes dynamic programming leetcode 204 1st attempt TLE, 2nd attempt: learned from the others, 3rd: optimization
86 Min Stack stack leetcode 155 ⭐️
87 Valid Parentheses stack leetcode 20
88 Daily Temperatures stack leetcode 739 kinda dynamic programming approach
89 Evaluate Reverse Polish Notation stack leetcode 739 very direct, beats 100%
90 Clone Graph graph leetcode 133 ⭐️ 1st graph question: iterative bfs for now, will try different approaches
91 Clone Graph graph, stack, queue leetcode 133 ⭐️ 2nd attempt: iterative dfs, 3rd attempt: recursive dfs
92 Target Sum graph, stack leetcode 494 1st attempt: iterative dfs beats 57%. 2nd attempt: recursive dfs beats 27%
93 Implement Queue using Stacks queue, stack leetcode 232 πŸ“Œ classic question. my classic solution also beats 100%
94 Implement Stack using Queues queue, stack leetcode 225 πŸ“Œ classic question. my classic solution also beats 100%
95 Decode String stack leetcode 394 🀑 interesting question, beats 100% using a stack
96 Flood Fill recursion, queue leetcode 733 actually the question is quite similar to the one on day82. recursion beats 92%, bfs beats 11%
97 Design HashSet hashtable leetcode 705 very good question. 1st navie approach beats 6.9%, 2nd another naive beats 51%
98 Design HashMap hashtable leetcode 706 very good question. 1st navie approach beats 3.28%
99 Contains Duplicate hashtable leetcode 217
100 Single Number hashtable, math, beat operation leetcode 136 βœŒπŸ»πŸ€“ day 100 with a πŸ“Œ classic question, 1st, 2nd beats 51%, 3rd beats 100%
101 Happy Number hashtable leetcode 202 very interesting question
102 Ugly Number math, recursion leetcode 263 1st beats 5%, 2nd beats 5%, optimal beats 100%
103 Two Sum hashtable leetcode 1 O(n) beats 100%, O(2n) beats 55%, O(n^2) beats 14%
104 Find the Unique Mistyped Item In an Unsorted Array hashtable ⭐️ Basic but not easy. I was asked by a friend who works at a top startup
105 Isomorphic Strings hashtable leetcode 205 1st beats 1%, 2nd beats 5.88%
106 Minimum Index Sum of Two Lists hashtable leetcode 599 1st beats 93.33%
107 Largest product in a grid array euler 11
108 First Unique Character in a String hashtable leetcode 387 1st beats 10.32%, 2nd beats 100%
109 Contains Duplicate II hashtable leetcode 219 1st beats 87.34%
109 Amicable numbers array euler 21 2nd question today
110 Logger Rate Limiter hashtable leetcode 359 i think there is only one common solution
110 Group Anagrams hashtable leetcode 49 1st beats 96.55%, 2nd beats 89.66%
111 Coin Change hashtable, dynamic programming leetcode 322 ⭐️ 2 years ago, I gave up. today i nailed it πŸ’ͺ🏻 1st beats 13.75%, 2nd beats 25.32%, 3rd beats 96.2%
112 Combination Sum IV hashtable, tree, dynamic programming leetcode 377 ⭐️ classic DP, classic solution
112 Coin Sums hashtable, tree, dynamic programming, backtracking euler 31 ⭐️ this question is similar to the previous one but the tricky thing is it requires DIFFERENT combinations
113 Coin Change II hashtable, tree, dynamic programming, backtracking leetcode 518 ⭐️ this question is exactly the same with the two on day112 but leetcode is draconian in the Time Limit
114 Design Linked List linked list leetcode 707 πŸ“Œ classic implementation of linked list operation
115 Intersection of Two Linked Lists linked list leetcode 160 πŸ“Œ tricky linked list question, 3 approaches but only one is considered as Linked List related
115 Reverse Linked List linked list leetcode 206 πŸ“Œ 2nd approach is more linked list related
115 FizzBuzz array leetcode 206 1st beats 82.49%, 2nd beats 95.48%
115 Multiples of 3 and 5 array euler 1 did it in a row becos it is similar to day115 q3 FizzBuzz
116 Linked List Cycle linked list leetcode 141 πŸ“Œ classic question
116 Linked List Cycle II linked list leetcode 142 πŸ“Œ classic question
117 Remove Nth Node From End of List linked list leetcode 19 πŸ“Œ classic question, 1 classic + 2 other approaches
117 Remove Linked List Elements linked list leetcode 19 πŸ“Œ classic question
118 Odd Even Linked List linked list leetcode 118 both naive and classic approach still beats 100% LOL
118 Palindrome Linked List linked list leetcode 234 naive beats 100% LOL
118 Valid Sudoku hashtable leetcode 36 very straight forward O(3n) solution beats 31.25%. But the 2 one-pass solutions also beats 31.25% πŸ€”
118 Permutations backtracking, recursion πŸ“Œ basic
118 Permutations backtracking, recursion leetcode 46 πŸ“Œ recursive beats 77.21%, iterative beats 77.14%
119 Permutations II backtracking, recursion leetcode 47 πŸ“Œ 1st attempt 7.41%
120 Permutations II backtracking, recursion leetcode 47 2nd day on the same question for understanding πŸ“Œ 2nd attempt use hashtable which beats 100%(46.47% for python)
121 Median of Two Sorted Arrays array leetcode 4 1st O(nlogn), 2nd O(m+n) already beats 100%, suggested solution is hard to understand
121 Find the K th Element in 2 Sorted Arrays array asked by a friend 1st O(nlogn), 2nd O(m+n), suggested solution is hard to understand(see main.py)
122 Next Permutation backtracking, recursion leetcode 31 1st O(n) beats 100%, 2nd O(n) is terse and it beats 100%
122 Combinations backtracking, recursion leetcode 77 πŸ“Œ 1st beats 1.22%, 2nd beats 9.76%, 3rd beats 12.20%
123 Subsets backtracking, recursion leetcode 78 πŸ“Œ both 1st, 2nd & 3rd beat 100 but python vers beat 35.29%, 3.67% and 35.29% only πŸ€”
123 Subsets II backtracking, recursion leetcode 90 πŸ“Œ 1st beats 100% but python ver beat 41.22% only πŸ€”
124 Subsets II backtracking, recursion leetcode 90 πŸ“Œ spent more time to understand the iterative approach, although it eventaully beats merely 29.41%
125 Letter Combinations of a Phone Number recursion interview asked by the facebook interviewer
126 Recursion recursion πŸ“Œ a little intro of recursion of Standford CS106B
127 Combination Sum hashtable, dynamic programming, backtracking leetcode 39 πŸ“Œ similar to day113, Coin Change II. 1st beats 23.85%, 2nd beats 63.08%
127 Combination Sum II recursion, backtracking leetcode 40 very similer to day119, Permutations II. 1st beats 38.89%, 2nd beats 100%. πŸ“Œ Be careful of the nuance between it and Combination Sum
127 Combination Sum III recursion, backtracking leetcode 216 πŸ“Œ very similer to day112, Combination Sum IV and day124, Subsets II. 1st beats 100%
128 Fibonacci recursion, dynamic programming leetcode 509 πŸ“Œ classic DP. top-down recursion beats 100%. bottom-up iteration beats 100%
128 Climbing Staris recursion, dynamic programming leetcode 70 πŸ“Œ classic DP. top-down recursion beats 100%. bottom-up iteration beats 100%
128 Min Cost Climbing Staris dynamic programming leetcode 746 πŸ“Œ classic DP. bruce forece recursion TLE. bottom-up iteration beats 100%
128 First Missing Positive array leetcode 41 1 in go beats 100%, 2 in python
129 Meeting Rooms sort, greedy leetcode 252 ⭐️interval, 1st beats 100% πŸŽ‰takeaway: sort.Slice()
129 Meeting Rooms II sort, greedy leetcode 253 ⭐️interval, 1st beats 0%, 2nd beats 96.97%
130 Reverse Integer array leetcode 7 πŸ“Œ 1st & 2nd approach 4ms. i gave up 2 years ago, now i finally know how to do it
130 Merge Sorted Array sort, array leetcode 88 πŸ“Œ 1st naive approach 0ms. 2nd is learned from others
131 Longest Common Substring array, dynamic programming πŸ“Œ 1st is naive. 2nd approach is classic
131 Search a 2D Matrix binary search leetcode 74 revise binary search, both 1st and 2nd is 8ms
131 Search a 2D Matrix II binary search leetcode 240 revise binary search, 1st and 2nd are 32ms beats 100%
132 Longest Common Subsequence array, dynamic programming πŸ“Œ 1st dynamic programming. 2nd recursive, 3rd recursive memorization
132 Range Sum Query - Immutable array, dynamic programming 1st brute force beats 46%, 2nd cache beats 100%
132 Range Sum Query 2D - Immutable array, dynamic programming 1st beats 80%
133 Bubble Sort sort revise sorting
133 Selection Sort sort revise sorting
133 Insertion Sort sort revise sorting
133 Merge Sort sort revise sorting
133 Quick Sort sort revise sorting. spaced & in-place
134 Rectangle Overlap math leetode 836 i hate this kind of questions
134 Rectangle Area math leetode 223 i hate this kind of questions
134 Minimum Absolute Difference in BST BST leetode 530
134 Find Bottom Left Tree Value tree leetode 513 both bfs & dfs run 12ms and beat 100%
134 Path Sum III tree leetode 437 1st LTE. 2nd 24ms beats 28.57%
135 Find Pivot Index array, math leetode 724 i failed to come up with a correct approach, learned from others
135 Largest Number At Least Twice of Others array, sort leetode 747 1st O(nlogn), 2nd O(n)
135 Plus One array leetode 66 should be just one solution
135 Find the Invalid Node in a BST array glassdoor
135 Minimum Distance Between BST Nodes BST leetode 783 this question is exactly the same wih leetcode 530
135 Unique Email Addresses string leetode 929
135 Continuous Subarray Sum array leetode 523 1st 104ms beats 0% LOL, 2nd 92ms beats 33.33%
135 String to Integer (atoi) array leetode 8 1st & 2nd 4ms beats 100%, fuck the corner cases
136 Diagonal Traverse array leetode 498 1st beats 22.22%
136 Spiral Matrix array leetode 54 1st, 2nd beats 100% ⭐️ 3rd is stunning
136 Pascals Triangle array leetode 118 1st beats 100%
136 Pascals Triangle II array leetode 119 1st, 2nd beats 100%
136 Minimum Path Sum array, dynamic programming leetode 64 1st 220ms beats 0%, πŸ“Œ 2nd beats 100%
137 Jewels and Stones hashtable leetode 771 1st hashtable 0ms beats 100%
137 Number of 1 Bits bit op leetode 191 πŸ“Œ the key here is to practice bit operation, i ignore any attempts using strings
137 Reverse Bits bit op leetode 190 πŸ“Œ the key here is to practice bit operation, i ignore any attempts using strings
138 LRU Cache hashtable, linked list leetode 146 πŸ“ŒπŸ“ŒπŸ“Œ
138 Correct Flights Route array interview πŸ€” interesting...1st O(n^2), 2nd O(n)
138 Length of Last Word array leetcode 58 not a good question
139 Count and Say array leetcode 38 ⭐️
139 LFU Cache hashtable, linked list leetode 460 πŸ“ŒπŸ“ŒπŸ“Œ 1st attempt learned from others, 2nd attempt is my own and new way to implement it(although it is not efficient)
140 Count Complete Tree Nodes binary tree leetode 222 1st 24ms beats 92%, 2nd 20ms beats 100%
141 Container With Most Water array leetode 11 1st 368ms beats 34%, 2nd 12ms beats 100%
141 Add Binary array, string leetode 67 1st 0ms beats 100%
141 Implement strStr() array, string leetode 28 1st 544ms beats 2.04%, 2nd 0ms beats 100%
141 Longest Common Prefix array, string leetode 14 1st 4ms beats 12.90%, 2nd 0ms beats 100%
141 Remove Duplicates from Sorted Array array, string leetode 14 1st 220ms beats 2.04%(.py 19% .js 47%), 2nd 60ms beats 100%
141 Remove Duplicates from Sorted Array II array, string leetode 80 1st, 2nd 8ms beats 100%
142 Spiral Matrix II array, string leetode 59 1st 0ms beats 100%
142 Merge Two Binary Trees tree leetode 617 1st 40ms beats 59.15%, 2nd 36ms beats 100%
143 Reverse String string leetode 344
143 Array Partition I array leetode 561 1st beats 5.48%, 2nd 128ms beats 12.33%
143 Remove Element array leetode 27 1st beats 100%. i also implement it in JS with 2 ways
143 Minimum Size Subarray Sum array leetode 209 ️⭐️ 1st beats 5.8%, 2nd beats 20%, 3rd learned from others
143 Maximum Product of Three Numbers array leetode 628 ⭐️ 1st beats 28.57%, 2nd 44ms beats 100%
143 Reverse Only Letters array leetode 917
143 Flipping an Image array leetode 832
144 Most Common Word string leetode 819 takeaway: python=>re.split(r'\W+', paragraph). go=>regexp.MustCompile([!?',;. ]). js=>paragraph.split(/[!?',;. ]/)
144 Subtree of Another Tree tree leetode 572 1st 24ms beats 100%
144 Subtree with Maximum Average tree 1point3acres
144 Divide Two Integers math leetcode 29 πŸ“Œ classic question in hk interviews
144 Product of Array Except Self math leetcode 238 using / got beting 60%. naive got TLE, proper approach 2836ms beats 5.92%
145 K Closest Points to Origin sort, heap leetcode 973 πŸ“Œ 1st beats 72.46%. 2nd beats 98.95% in python
145 Gray Code array, bit op leetcode 89 πŸ€” interesting
145 Longest Substring with At Most Two Distinct Characters array, hashtable leetcode 159 1st, 2nd beat 17.65%
145 Maximize Distance to Closest Person array leetcode 849 1st beats 100%
146 Max Stack stack leetcode 716 very similar to Day 86: Min Stack
146 Middle of the Linked List linked list leetcode 876 πŸ“Œ
146 Insert into a Cyclic Sorted List linked list leetcode 708 πŸ“Œ
146 Merge Two Sorted Lists linked list leetcode 21 πŸ“Œ
146 Merge k Sorted Lists linked list leetcode 23 πŸ“Œ naive approach runs faster than the decent approach πŸ˜‚
146 Remove Duplicates from Sorted List II linked list leetcode 82 πŸ“Œ 1st, 2nd beats 100%
147 Network Delay Time graph leetcode 743 πŸ“Œ Dijkstra's Algorithm. Altenative: DFS
147 Cheapest Flights Within K Stops graph leetcode 787 BTS: TLE. need to use πŸ“Œ Dijkstra's variation
148 Longest Palindromic Substring string leetcode 5 ⭐️
148 Maximum Size Subarray Sum Equals k array leetcode 325 1st appraoach LTE, 2nd approach learned from others which beats 100%
148 Subarray Sum Equals K array leetcode 560 1st appraoach refers to leetcode 325, therefore i came up with the idea immediately which beats 100%
149 Maze array glassdoor ️⭐️
149 2 Sum Closest array glassdoor ⭐️
149 Reverse 2nd Half of a Linked List linked list glassdoor πŸ“Œ
149 Reverse Linked List II linked list leetcode 92 οΈπŸ“Œ
149 Window Sum array glassdoor ⭐️
149 To Lower Case array leetcode 709 ️
149 Sort Array By Parity array leetcode 905 ️
149 Sort Array By Parity II array leetcode 922 ️
149 Robot Return to Origin string leetcode 657 ️1st beats 100%, 2nd beats 0% πŸ˜‚
149 Find Anagram Mappings array leetcode 760 ️
149 Uncommon Words from Two Sentences hashtable leetcode 884 ️
149 Rotate String string leetcode 796 ️
150 Find Leaves of Binary Tree tree leetcode 336 ️1st O(h*n) beats 100%
150 Second Minimum Node In a Binary Tree tree leetcode 671 ️1st, 2nd O(n) beats 100%
150 Two Sum IV - Input is a BST tree leetcode 653 ️1st, 2nd O(n) beats 50% only πŸ€”
150 Increasing Order Search Tree tree leetcode 897 ️1st O(n) beats 100%
150 Reverse Words in a String II array leetcode 186 ️1st O(n) beats 100%
150 Compare Version Numbers array leetcode 165 ️1st O(n) beats 100%
150 Sum Root to Leaf Numbers tree leetcode 129 ️1st, 2nd O(n) beats 100%
150 Number of Connected Components in an Undirected Graph hashtable, graph leetcode 323 ️1st beats 100%
150 Maximum Binary Tree tree leetcode 654 ️1st beats 0%. 2nd beats 100%
151 Rotate Function tree leetcode 396 ️1st O(n^2) beats 100%, 2nd O(n) beats 100%
151 Rotate List linked list leetcode 61 ️1st O(n) beats 100%
151 Arithmetic Slices array leetcode 413 ️1st O(n) beats 100%
152 Round Robin queue glassdoor οΈπŸ“ŒπŸ“ŒπŸ“Œ
152 Sliding Window Median array leetcode 480 ⭐️ 1st O(n*nlogn) 100%
152 Permutation in String hashtable, array, string leetcode 480 ⭐️ 1st O(n^2) hashtable beats 0%, 2nd O(n^2) [26]int{} beats 40%
152 Set Matrix Zeroes hashtable, array leetcode 73 1st O(n) beats 52%
152 Top K Frequent Elements hashtable, bucket sort leetcode 347 1st O(nlogn) beats 64%. 2nd O(n) beats 64%. takeaway: use bucket sort for frequency questions, 3rd ~O(n) quick select
153 Top K Frequent Words hashtable, bucket sort leetcode 692 1st O(2nlogn) beats 25%. 2nd O(nlogn) beats 100%. takeaway: sort things with priority queue using priority WITH other params
153 Sort Characters By Frequency hashtable, bucket sort leetcode 451 1st O(n) beats 66%
153 Zigzag Iterator array leetcode 281 1st O(k) beats 61%. leetcode doesn't support golang, did it in python
153 Triangle dfs, dynamic programming leetcode 120 πŸ“Œ 1st TLE, 2nd MLE. 3rd dp in O(n) beats 100%
154 Products' Average Rating array glassdoor ⭐️
154 Greatest Common Divisor math glassdoor ⭐️ takeaway: Euclidian Algorithm
154 Least Common Multiple math glassdoor ⭐️ takeaway: A * B = LCM * GCD
154 Cells Mutation array glassdoor ⭐️
154 Amplitude of a Tree tree glassdoor ⭐️
155 Union Find graph, union find Study Union Find πŸ“Œ Quick Find πŸ‘ŽπŸ» -> Quick Union πŸ€” -> Union Find πŸŽ‰
155 Minimum Spanning Tree graph, union find Study MST πŸ“Œ heap + list of hashtables πŸ€” -> Kruskal(Union Find) πŸŽ‰ or Prim(heap + hashtable)
156 Go Through all the Warehouses with Minimum Cost graph, union find glassdoor πŸ“Œ real life problem <- Kruskal, Prim
156 Minimum Window Substring 2pointers, hashtable leetcode 76 1st O(n) beats 20%
157 LRU Cache Miss Count linked list, hashtable glassdoor 1st O(n^2), 2nd O(n)
157 Four Integers array glassdoor O(nlogn)
157 Rotate a Matrix array glassdoor 1st space O(n), πŸ“Œ i2nd space O(1) in-place
157 Rotate Image array leetcode 48 πŸ“Œ inplace
157 Copy List with Random Pointer linked list leetcode 138 ⭐️
158 Path Sum IV linked list leetcode 138 1st O(4n)
158 Binary Tree Vertical Order Traversal tree leetcode 314 1st recursive, 2nd iterative, both O(n)
158 Course Schedule graph leetcode 207 1st LTE, πŸ“Œ 2nd Classic Approach: Topological Ordering
159 Topological Ordering graph study πŸ“Œ 1st: Topological Ordering with DFS πŸ“Œ 2nd: Topological Ordering with BFS/Khan's
159 Course Schedule II graph leetcode 210 πŸ“Œ DFS, BFS
160 Order Dependency graph glassdoor πŸ“Œ DFS, BFS
160 Graph Valid Tree graph, union find leetcode 261 πŸ“Œ 1st union find O(nlogn) beats 100%
160 Merge Strings array glassdoor ⭐️ very similar to ZigZag iterator
160 Find Distinct Substrings with Exactly K Distinct Characters array πŸ“Œ1st O(n^3), 2nd O(n^2)
161 Reorder Log Files array leetcode 937 1st O(nlogn)
161 Dijkstra's Algorithm on a Directed Graph graph study πŸ“Œ
161 Dijkstra's Algorithm on an Undirected Graph graph study πŸ“Œ
161 Find All Anagrams in a String string leetcode 438 1st, 2nd O(kn)
162 Optimal Flights binary search interview πŸ“Œ1st O(n^2), 2nd O(nlogn)
162 Max Area of Island array leetcode 695 1st O(n)
162 Find K Pairs with Smallest Sums array leetcode 373 1st 2nd O(nlogn)
163 Number of Distinct Islands array leetcode 694 1st O(nk)
163 Kth Largest Element in an Array array, heap leetcode 215 1st, 2nd O(nlogn)
163 Number of Islands II array leetcode 305 1st O(n^2) beats 6% LOL
163 Redundant Connection union find leetcode 684 O(nlogn)
164 Friends Circles union find leetcode 547 O(nlogn)
164 Sentence Similarity II union find leetcode 737 O(nlogn)
165 Sentence Similarity hashtable leetcode 734 ⭐O(n)
166 Heap heap study πŸ“Œ implement a heap with push, pop and heapify
166 Heap Sort heap, sort study πŸ“Œ implement heapsort using a heap
166 Generate Parentheses backtracking study πŸ“Œ1st O(2^2n) beats 5%
166 Count Univalue Subtrees tree leetcode 250 πŸ“Œ1st O(n) 100%
167 Decode Ways dynamic programing leetcode 91 ⭐️1st brute force TLE, 2nd memorized brute force O(n) beats 100%
167 Unique Paths dynamic programing leetcode 62 πŸ“Œclassic DP, bottom up recursion with memorization, O(mn) beats 100%
167 Merge Intervals sort, greedy leetcode 56 ⭐️interval
168 Non-overlapping Intervals sort, greedy leetcode 435 ⭐️interval
168 Minimum Number of Arrows to Burst Balloons sort, greedy leetcode 452 ⭐️interval
168 Largest BST Subtree BST leetcode 333 1st O(n^2)
168 Range Sum of BST BST leetcode 938 1st recursive, 2nd iterative, both O(n) beat 98%
169 Delete a node in a BST BST leetcode 450 πŸ“Œ[revise day30] 2 classic approaches, bottom up recursion to replace the target node with its predecessor or successor
169 Inorder Successor in BST BST leetcode 285 πŸ“Œ [revise day23] iterative and recursive O(logn)
169 Inorder Successor in BST II BST leetcode 510 ⭐️ interesting, would be a potential follow-up of leetcode 285
169 Closest Binary Search Tree Value II BST leetcode 272 ⭐ 1st O(nlogn)
170 Split BST BST leetcode 776 πŸ“ŒπŸ“ŒπŸ“Œ super hard recursion question, must revise again
170 Unique Word Abbreviation hashtable leetcode 288
170 Longest Substring Without Repeating Characters hashtable leetcode 3 πŸ“Œ 1st O(n^2), 2nd O(n)
170 Repeated DNA Sequences hashtable leetcode 187 1st O(n)
170 Find Duplicate Subtrees hashtable, tree leetcode 652 1st O(n)
170 Group Shifted Strings hashtable leetcode 249 O(n)
171 K-th Symbol in Grammar hashtable leetcode 779 1st LTE. πŸ“Œ2nd tricky recursion. see ./idea.jpeg
171 3Sum hashtable, 2pointers leetcode 779 πŸ“Œ1st hashtable O(n^2) beats 18%. πŸ“Œ2nd hashtable+2pointers O(n^2) beats 27%, πŸ“Œ3rd hashtable+2pointers O(n^2) beats 54%
171 Two Sum III - Data structure design hashtable leetcode 170 πŸ“Œ1st hashtable O(n) beats 100%
171 4Sum hashtable leetcode 18 πŸ“Œ1st hashtable O(n^3) beats 15%, 2nd hashtable+2pointer O(n^3) beats 95%
171 4Sum II hashtable leetcode 454 πŸ“Œ1st O(n^3), 2nd O(n^2)
172 Insert Delete GetRandom O(1) hashtable leetcode 380 1st random O(n) beats 6%, πŸ“Œ2nd random O(1) beats 100%
172 Insert Delete GetRandom O(1) - Duplicates allowed hashtable leetcode 381 1st random O(n) beats 6%
173 Find Median from Data Stream heap, bst leetcode 295 1st heap, 2nd BST both LTE, πŸ“Œ3rd: 2 heaps
173 Lonely Pixel I hashtable leetcode 531 1st, 2nd beats 100%
173 Minimum Add/Delete to Make Parentheses Valid stack leetcode 921 1st O(n) beats 100%
173 Largest Permutation permutation geeksforgeeks
174 Integer to English Words array leetcode 273 ⭐️tedious but frequently asked
174 Remove duplicates from a string in O(1) space hashtable, bucket geeksforgeeks ⭐ 1st O(n) space, 2nd O(1) space
175 Design Hit Counter hashtable, array leetcode 362 ⭐ 1st python OrderedDict O(1) for all operations beats 100%, 2nd hashtable+array beats 100%
175 Design Tic-Tac-Toe array leetcode 348 1st O(n^2), 😱2nd O(1)
175 Valid Tic-Tac-Toe State array leetcode 794 my thought is so stupid
176 Repeated Substring Pattern array leetcode 459 1st O(n^2), 2nd O(n)
176 Repeated String Match array leetcode 686 1st O(kn)
176 License Key Formatting array, stack leetcode 482 1st O(n)
176 Serialize and Deserialize array of string array geeksforgeeks O(n)
177 Letter Case Permutation permutation leetcode 784 1st permutation+hashset O(2^n), 2nd permutation O(2^n)
177 Best Time to Buy and Sell Stock dynamic programming leetcode 121 πŸ“ŒπŸ“ŒπŸ“Œ1st dp O(n), 2nd heap O(nlogn)
177 Best Time to Buy and Sell Stock II dynamic programming leetcode 122 πŸ“ŒπŸ“ŒπŸ“Œ1st, 2nd dp O(n)
178 Best Time to Buy and Sell Stock III dynamic programming leetcode 122 πŸ“ŒπŸ“ŒπŸ“Œ1st O(n^2) LTE, 2nd O(2n) beats 32%
178 Minimum Time Difference sort leetcode 539 1st O(nlogn) beats 73%, 2nd O(n) beats 93%
178 Next Closest Time string leetcode 681 ⭐️ so many corner cases, it was the worst attempt i ever made
179 Game of Life array, bit op leetcode 289 1st space O(mn), 2nd space O(1)
179 Add Two Numbers linked list leetcode 2 πŸ“Œ1st, 2nd O(n)
179 Add Two Numbers II linked list leetcode 445 πŸ“Œ1st O(n)
179 Topological Ordering Of IDs graph revise implement topological ordering of a list of IDs
179 Alien Dictionary array, graph leetcode 269 πŸ“Œ1st BFS, 2nd DFS
180 Letter Combinations of a Phone Number recursion leetcode 17 πŸ“Œ
180 Multiply Strings array leetcode 43 πŸ“Œ
180 Add Strings array leetcode 415 πŸ“Œ
181 Valid Word Square array leetcode 422
181 Maximum Subarray array leetcode 53 1st O(n^2) πŸ“ŒπŸ“ŒπŸ“Œ2nd, 3rd O(n) Kadan's Algorithm. This problem can be applied to Minimum Subarray
181 Maximum Product Subarray array leetcode 152 1st O(n^2) πŸ“ŒπŸ“ŒπŸ“Œ2nd O(n) Kadan's Algorithm. This problem can be applied to Minimum Product Subarray
181 Subarray Product Less Than K array leetcode 713 ⭐️sliding window
182 Word Ladder bfs, hashtable leetcode 127 1st LTE, ⭐️2nd O(n^26*l)
182 Word Ladder II bfs, hashtable leetcode 127 LTE, revise later
182 Minimum Genetic Mutation bfs, hashtable leetcode 433 1st O(MN)
183 Bold Words in String hashtable, sort leetcode 433 ️️⭐️1st O(nlogn): interval problem
183 Add Bold Tag in String hashtable, sort leetcode 616 ⭐️1st O(nlogn): interval problem
183 Number of Segments in a String string leetcode 616 takeawaystrings.Fields(s)
183 Sort Colors bucket leetcode 75 0th merge sort O(nlogn), 1st bucket sort O(2n), πŸ“Œ2nd moving zeros swap O(2n), πŸ“Œ3rd partitioning swap O(n)
183 Move Zeroes array leetcode 75 ⭐️swap
183 Missing Number bucket, math leetcode 268 1st math O(n), 2nd bucket O(2n)
184 Swap Nodes in Pairs linked list leetcode 24 πŸ“Œ
184 Reverse Nodes in k-Group linked list leetcode 25 πŸ“Œ
184 Sort List linked list, sort leetcode 148 πŸ“Œmerge sort
184 Peeking Iterator design leetcode 284 leetcode doesnt support golang
184 One Edit Distance array leetcode 161 1st O(3n), 2nd O(n)
184 Zero/K Sum Subarray(s) array glassdoor πŸ“Œsimilar to leetcode 325 and leetcode 560
185 Edit Distance dynamic programming leetcode 72 πŸ“ŒπŸ“ŒπŸ“Œ similar to LCS
185 Shortest Unsorted Continuous Subarray sort, array leetcode 581 1st O(nlogn), 2nd O(n)
185 Maximum Average Subarray dynamic programming glassdoor πŸ“Œ1st O(nlogn), 2nd O(n)
185 Maximum Average Subarray I array leetcode 643 sliding window O(n)
185 Subdomain Visit Count string leetcode 811 1st O(n)
185 Trapping Rain Water dynamic programming leetcode 42 1st O(3n)
186 Unique Binary Search Trees dynamic programming leetcode 96 ⭐️Catalan Number Sequence very similar to the Fibonacci Sequence
187 Valid Palindrome 2pointers leetcode 125 πŸ“Œ
187 Valid Palindrome II 2pointers leetcode 680 πŸ“Œ1st O(n), 2nd O(n) too but more readable
188 Cut Off Trees for Golf Event heap, sort leetcode 675 πŸ“Œ1st heap, 2nd sort
188 Lowest Common Ancestor of a N-ary Tree tree glassdoor ⭐️
188 Distance Between 2 Values in a BST tree glassdoor ⭐️build BST => find LCA => ans = depth(a) + depth(b) - 2*depth(lca)
189 Reverse Words in a String string leetcode 151 1st time=space=O(n)
189 Max Consecutive Ones array leetcode 485 O(n)
189 Max Consecutive Ones II array leetcode 487 O(2n)
189 Max Consecutive Ones III array leetcode 1004 1st O(n^2), 2nd O(2n)
189 Pacific Atlantic Water Flow graph leetcode 417 1st O(n^2)
190 Design Compressed String Iterator string, queue leetcode 604 1st O(n) unicode.IsDigit()
190 Basic Calculator II string, stack leetcode 227 1st O(2n), takeaway: isdigit() in python, unicode.IsDigit() in golang, and isinstance(a, int) in python for type checking, πŸ“Œ2nd O(2n) too but more concise but be careful of float division
191 Array Partition by Occurence hashtable interview ⭐️ O(n^2)
192 Partition Labels hashtable leetcode 763 ️️️⭐️WTF, I was asked about it yestarday during an interview. 1st O(n^2). 2nd O(n)
192 Basic Calculator string, stack leetcode 224 1st O(2n) tedious operation beats 25%, 2nd concise O(2n) beats 90%
193 Basic Calculator III string, stack, recursion leetcode 772 1st O(n^2) recursion, 2nd O(n) recursion
193 Sort Transformed Array 2pointers leetcode 360 1st O(n)
194 Quick Select sort revision revise Quick Sort and use it to find the k-th smallest element in O(n) time
195 01 Matrix bfs, dynamic programming leetcode 542 1st BFS O(n^2) LTE, 2nd DP O(2n) beats 96%
195 Recover Binary Search Tree tree leetcode 99 1st inroder+sort O(nlogn), 2nd inorder O(n)
195 Baseball Game stack leetcode 682 1st O(n)
195 Sort a Stack using a Stack stack Sort Stacks ⭐️
196 N-Queens backtracking leetcode 51 πŸ“Œ1st classic backtracking approach
196 N-Queens II backtracking leetcode 52 πŸ“Œ1st classic backtracking approach
196 Search in Rotated Sorted Array II binary search leetcode 81 πŸ“Œclassic binary search question similar to leetcode 33
196 Kth Smallest Element in a Sorted Matrix heap, binary search leetcode 378 ⭐️ 1st O(nlogn) sort, ⭐️2nd O(nlogn) max heap, 3rd O(logn*logn) binary search
197 Maximal Square dynamic programming leetcode 221 πŸ“Œdynamic programming in linear time O(n)
197 Binary Search Variations binary search revision πŸ“Œcommon, lower & upper bound in both iterative and recursive implementation
197 Factorial Trailing Zeroes math leetcode 172 ⭐
198 Quick Select sort revision wrote the quick select again in both go & python for better understanding