1515 - [ Merge Intervals] ( #pattern-merge-intervals )
1616 - [ Modified Binary Search] ( #pattern-modified-binary-search )
1717 - [ Sliding Window] ( #pattern-sliding-window )
18+ - [ Top K Elements] ( #pattern-top-k-elements )
1819 - [ Topological Sort] ( #pattern-topological-sort )
1920 - [ Tree Breadth First Search] ( #pattern-tree-breadth-first-search )
2021 - [ Tree Depth First Search] ( #pattern-tree-depth-first-search )
21- - [ Top K Elements] ( #pattern-top-k-elements )
2222 - [ Two Heaps] ( #pattern-two-heaps )
2323 - [ Two Pointers] ( #pattern-two-pointers )
2424- [ Tips to Consider] ( #tips-to-consider )
@@ -67,49 +67,73 @@ Other useful Java methods include `substring()`, `toCharArray()`, `Math.max()`,
6767
6868## Question List
6969
70- ### Pattern: Sliding Window
70+ ### Pattern: Arrays
7171
72- The sliding window approach can be found under ` 1. Sliding Window ` [ here] .
72+ #### Easy:
73+
74+ 1 . Missing Number: https://leetcode.com/problems/missing-number/
75+ 1 . Find All Numbers Disappeared in an Array: https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/
76+ 1 . Single Number: https://leetcode.com/problems/single-number/
7377
7478#### Medium:
7579
76- 1 . Minimum Size Subarray Sum: https://leetcode.com/problems/minimum-size-subarray-sum/
77- 1 . Fruit Into Baskets: https://leetcode.com/problems/fruit-into-baskets/
78- 1 . Permutation in String: https://leetcode.com/problems/permutation-in-string/
79- 1 . Longest Repeating Character Replacement: https://leetcode.com/problems/longest-repeating-character-replacement/
80+ 1 . Find the Duplicate Number: https://leetcode.com/problems/find-the-duplicate-number/
81+ 1 . Find All Duplicates in an Array: https://leetcode.com/problems/find-all-duplicates-in-an-array/
8082
8183#### Hard:
8284
83- 1 . Sliding Window Maximum: https://leetcode.com/problems/sliding-window-maximum/
84- 1 . Longest Substring Without Repeating Characters: https://leetcode.com/problems/longest-substring-without-repeating-characters/
85- 1 . Minimum Number of K Consecutive Bit Flips: https://leetcode.com/problems/minimum-number-of-k-consecutive-bit-flips/
86- 1 . Unique Letter String: https://leetcode.com/problems/unique-letter-string/
87- 1 . Minimum Window Substring: https://leetcode.com/problems/minimum-window-substring/
88- 1 . Substring with Concatenation of All Words: https://leetcode.com/problems/substring-with-concatenation-of-all-words/
85+ 1 . First Missing Positive: https://leetcode.com/problems/first-missing-positive/
8986
90- ### Pattern: Two Pointers
87+ ### Pattern: Backtracking
9188
92- The two pointer approach can be found under ` 2. Two Pointers or Iterators ` [ here] .
89+ The backtracking technique can be found under ` 10. Subsets ` [ here] .
9390
9491#### Easy:
9592
96- 1 . Two Sum: https://leetcode.com/problems/two-sum/
97- 1 . Remove Duplicates from Sorted List: https://leetcode.com/problems/remove-duplicates-from-sorted-list/
98- 1 . Squares of a Sorted Array: https://leetcode.com/problems/squares-of-a-sorted-array/
99- 1 . Backspace String Compare: https://leetcode.com/problems/backspace-string-compare
93+ 1 . Letter Case Permutation: https://leetcode.com/problems/letter-case-permutation/
10094
10195#### Medium:
10296
103- 1 . 3 Sum: https://leetcode.com/problems/3sum/
104- 1 . 3 Sum Closest: https://leetcode.com/problems/3sum-closest/
105- 1 . Subarrays with Product Less than K: https://leetcode.com/problems/subarray-product-less-than-k/
106- 1 . Sort Colours: https://leetcode.com/problems/sort-colors/
97+ 1 . Subsets: https://leetcode.com/problems/subsets/
98+ 1 . Subsets II: https://leetcode.com/problems/subsets-ii/
99+ 1 . Permutations: https://leetcode.com/problems/permutations/
100+ 1 . Permutations II: https://leetcode.com/problems/permutations-ii/
101+ 1 . Combinations: https://leetcode.com/problems/combinations/
102+ 1 . Combination Sum: https://leetcode.com/problems/combination-sum/
103+ 1 . Combination Sum II: https://leetcode.com/problems/combination-sum-ii/
104+ 1 . Combination Sum III: https://leetcode.com/problems/combination-sum-iii/
105+ 1 . Generate Parentheses: https://leetcode.com/problems/generate-parentheses/
106+ 1 . Target Sum: https://leetcode.com/problems/target-sum/
107+ 1 . Palindrome Partitioning: https://leetcode.com/problems/palindrome-partitioning/
108+ 1 . Letter Combinations of a Phone Number: https://leetcode.com/problems/letter-combinations-of-a-phone-number/
109+ 1 . Generalized Abbreviation: https://leetcode.com/problems/generalized-abbreviation/
107110
108111#### Hard:
109112
110- 1 . Minimum Window Substring: https://leetcode.com/problems/minimum-window-substring/
111- 1 . Trapping Rain Water: https://leetcode.com/problems/trapping-rain-water/
112- 1 . Container With Most Water: https://leetcode.com/problems/container-with-most-water/
113+ 1 . Sudoku Solver: https://leetcode.com/problems/sudoku-solver/
114+ 1 . N-Queens: https://leetcode.com/problems/n-queens/
115+
116+ ### Pattern : Dynamic Programming
117+
118+ Dynamic programming guides can be found on [ topcoder] and the [ Back To Back SWE
119+ YouTube channel] .
120+
121+ #### Easy:
122+
123+ 1 . Climbing Stairs: https://leetcode.com/problems/climbing-stairs/
124+ 1 . House Robber: https://leetcode.com/problems/house-robber/
125+ 1 . Maximum Subarray: https://leetcode.com/problems/maximum-subarray/
126+ 1 . Range Sum Query - Immutable: https://leetcode.com/problems/range-sum-query-immutable/
127+
128+ #### Medium:
129+
130+ 1 . Coin Change: https://leetcode.com/problems/coin-change/
131+ 1 . Longest Increasing Subsequence: https://leetcode.com/problems/longest-increasing-subsequence/
132+ 1 . Number of Longest Increasing Subsequence: https://leetcode.com/problems/number-of-longest-increasing-subsequence/
133+ 1 . Partition Equal Subset Sum: https://leetcode.com/problems/partition-equal-subset-sum/
134+ 1 . Partition to K Equal Sum Subsets: https://leetcode.com/problems/partition-to-k-equal-sum-subsets/
135+ 1 . Best Time to Buy and Sell Stock with Cooldown: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
136+ 1 . Counting Bits: https://leetcode.com/problems/counting-bits/
113137
114138### Pattern: Fast & Slow Pointers
115139
@@ -129,6 +153,39 @@ The fast & slow pointer approach can be found under `3. Fast and Slow pointers`
1291531 . Add Two Numbers: https://leetcode.com/problems/add-two-numbers/ ,
1301541 . Sort List: https://leetcode.com/problems/sort-list/
131155
156+ ### Pattern: In-place Reversal of a Linked List
157+
158+ The in-place reveral technique can be found under ` 6. In-place reversal of linked list ` [ here] .
159+
160+ #### Easy:
161+
162+ 1 . Reverse Linked List: https://leetcode.com/problems/reverse-linked-list/
163+
164+ #### Medium:
165+
166+ 1 . Reverse Linked List II: https://leetcode.com/problems/reverse-linked-list-ii/
167+ 1 . Rotate List: https://leetcode.com/problems/rotate-list/
168+ 1 . Swap Nodes in Pairs: https://leetcode.com/problems/swap-nodes-in-pairs/
169+ 1 . Odd Even Linked List: https://leetcode.com/problems/odd-even-linked-list/
170+
171+ #### Hard:
172+
173+ 1 . Reverse Nodes in k-Group: https://leetcode.com/problems/reverse-nodes-in-k-group/
174+
175+ ### Pattern: K-Way Merge
176+
177+ The k-way merge technique can be found under ` 13. K-way Merge ` [ here] .
178+
179+ #### Medium:
180+
181+ 1 . Kth Smallest Element in a Sorted Matrix: https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/
182+ 1 . Find K Pairs with Smallest Sums: https://leetcode.com/problems/find-k-pairs-with-smallest-sums/
183+
184+ #### Hard:
185+
186+ 1 . Merge k Sorted Lists: https://leetcode.com/problems/merge-k-sorted-lists/
187+ 1 . Smallest Range Covering Elements from K Lists: https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists/
188+
132189### Pattern: Merge Intervals
133190
134191The merge interval approach can be found under ` 4. Merge Intervals ` [ here] .
@@ -151,41 +208,82 @@ The merge interval approach can be found under `4. Merge Intervals` [here].
1512081 . Insert Interval: https://leetcode.com/problems/insert-interval/
1522091 . Employee Free Time: https://leetcode.com/problems/employee-free-time/
153210
154- ### Pattern: Arrays
211+ ### Pattern: Modified Binary Search
212+
213+ The modified binary search algorithm can be found under ` 11. Modified binary search ` [ here] .
155214
156215#### Easy:
157216
158- 1 . Missing Number : https://leetcode.com/problems/missing-number /
159- 1 . Find All Numbers Disappeared in an Array : https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array /
160- 1 . Single Number : https://leetcode.com/problems/single-number /
217+ 1 . Binary Search : https://leetcode.com/problems/binary-search /
218+ 1 . Find Smallest Letter Greater Than Target : https://leetcode.com/problems/find-smallest-letter-greater-than-target /
219+ 1 . Peak Index in a Mountain Array : https://leetcode.com/problems/peak-index-in-a-mountain-array /
161220
162221#### Medium:
163222
164- 1 . Find the Duplicate Number: https://leetcode.com/problems/find-the-duplicate-number/
165- 1 . Find All Duplicates in an Array: https://leetcode.com/problems/find-all-duplicates-in-an-array/
223+ 1 . Find Peak Element: https://leetcode.com/problems/find-peak-element/
224+ 1 . Search in Rotated Sorted Array: https://leetcode.com/problems/search-in-rotated-sorted-array/
225+ 1 . Search in Rotated Sorted Array II: https://leetcode.com/problems/search-in-rotated-sorted-array-ii/
226+ 1 . Search a 2D Matrix: https://leetcode.com/problems/search-a-2d-matrix/
227+ 1 . Search a 2D Matrix II: https://leetcode.com/problems/search-a-2d-matrix-ii/
166228
167229#### Hard:
168230
169- 1 . First Missing Positive : https://leetcode.com/problems/first-missing-positive /
231+ 1 . Count of Range Sum : https://leetcode.com/problems/count-of-range-sum /
170232
171- ### Pattern: In-place Reversal of a Linked List
233+ ### Pattern: Sliding Window
172234
173- The in-place reveral technique can be found under ` 6. In-place reversal of linked list ` [ here] .
235+ The sliding window approach can be found under ` 1. Sliding Window ` [ here] .
174236
175- #### Easy :
237+ #### Medium :
176238
177- 1 . Reverse Linked List: https://leetcode.com/problems/reverse-linked-list/
239+ 1 . Minimum Size Subarray Sum: https://leetcode.com/problems/minimum-size-subarray-sum/
240+ 1 . Fruit Into Baskets: https://leetcode.com/problems/fruit-into-baskets/
241+ 1 . Permutation in String: https://leetcode.com/problems/permutation-in-string/
242+ 1 . Longest Repeating Character Replacement: https://leetcode.com/problems/longest-repeating-character-replacement/
243+
244+ #### Hard:
245+
246+ 1 . Sliding Window Maximum: https://leetcode.com/problems/sliding-window-maximum/
247+ 1 . Longest Substring Without Repeating Characters: https://leetcode.com/problems/longest-substring-without-repeating-characters/
248+ 1 . Minimum Number of K Consecutive Bit Flips: https://leetcode.com/problems/minimum-number-of-k-consecutive-bit-flips/
249+ 1 . Unique Letter String: https://leetcode.com/problems/unique-letter-string/
250+ 1 . Minimum Window Substring: https://leetcode.com/problems/minimum-window-substring/
251+ 1 . Substring with Concatenation of All Words: https://leetcode.com/problems/substring-with-concatenation-of-all-words/
252+
253+ ### Pattern: Top 'K' Elements
254+
255+ The top K element technique can be found under ` 12. Top K elements ` [ here] .
178256
179257#### Medium:
180258
181- 1 . Reverse Linked List II: https://leetcode.com/problems/reverse-linked-list-ii/
182- 1 . Rotate List: https://leetcode.com/problems/rotate-list/
183- 1 . Swap Nodes in Pairs: https://leetcode.com/problems/swap-nodes-in-pairs/
184- 1 . Odd Even Linked List: https://leetcode.com/problems/odd-even-linked-list/
259+ 1 . Kth Smallest Element in a BST: https://leetcode.com/problems/kth-smallest-element-in-a-bst/
260+ 1 . K Closest Points to Origin: https://leetcode.com/problems/k-closest-points-to-origin/
261+ 1 . Top K Frequent Elements: https://leetcode.com/problems/top-k-frequent-elements/
262+ 1 . Sort Characters By Frequency: https://leetcode.com/problems/sort-characters-by-frequency/
263+ 1 . Kth Largest Element in an Array: https://leetcode.com/problems/kth-largest-element-in-an-array/
264+ 1 . Find K Closest Elements: https://leetcode.com/problems/find-k-closest-elements/
265+ 1 . Reorganize String: https://leetcode.com/problems/reorganize-string/
185266
186267#### Hard:
187268
188- 1 . Reverse Nodes in k-Group: https://leetcode.com/problems/reverse-nodes-in-k-group/
269+ 1 . Rearrange String k Distance Apart: https://leetcode.com/problems/rearrange-string-k-distance-apart
270+ 1 . Course Schedule III: https://leetcode.com/problems/course-schedule-iii/
271+ 1 . Maximum Frequency Stack: https://leetcode.com/problems/maximum-frequency-stack/
272+
273+ ### Pattern: Topological Sort
274+
275+ The topological sort algorithm can be found under ` 14. Topological sort ` [ here] .
276+
277+ #### Medium:
278+
279+ 1 . Course Schedule: https://leetcode.com/problems/course-schedule/
280+ 1 . Course Schedule II: https://leetcode.com/problems/course-schedule-ii/
281+ 1 . Minimum Height Trees: https://leetcode.com/problems/minimum-height-trees/
282+
283+ #### Hard:
284+
285+ 1 . Alien Dictionary: https://leetcode.com/problems/alien-dictionary
286+ 1 . Sequence Reconstruction: https://leetcode.com/problems/sequence-reconstruction
189287
190288### Pattern: Tree Breadth First Search
191289
@@ -249,127 +347,29 @@ The two heaps approach can be found under `9. Two heaps` [here].
2493471 . Sliding Window Median: https://leetcode.com/problems/sliding-window-median/
2503481 . IPO: https://leetcode.com/problems/ipo/
251349
252- ### Pattern: Backtracking
253-
254- The backtracking technique can be found under ` 10. Subsets ` [ here] .
255-
256- #### Easy:
257-
258- 1 . Letter Case Permutation: https://leetcode.com/problems/letter-case-permutation/
259-
260- #### Medium:
261-
262- 1 . Subsets: https://leetcode.com/problems/subsets/
263- 1 . Subsets II: https://leetcode.com/problems/subsets-ii/
264- 1 . Permutations: https://leetcode.com/problems/permutations/
265- 1 . Permutations II: https://leetcode.com/problems/permutations-ii/
266- 1 . Combinations: https://leetcode.com/problems/combinations/
267- 1 . Combination Sum: https://leetcode.com/problems/combination-sum/
268- 1 . Combination Sum II: https://leetcode.com/problems/combination-sum-ii/
269- 1 . Combination Sum III: https://leetcode.com/problems/combination-sum-iii/
270- 1 . Generate Parentheses: https://leetcode.com/problems/generate-parentheses/
271- 1 . Target Sum: https://leetcode.com/problems/target-sum/
272- 1 . Palindrome Partitioning: https://leetcode.com/problems/palindrome-partitioning/
273- 1 . Letter Combinations of a Phone Number: https://leetcode.com/problems/letter-combinations-of-a-phone-number/
274- 1 . Generalized Abbreviation: https://leetcode.com/problems/generalized-abbreviation/
275-
276- #### Hard:
277-
278- 1 . Sudoku Solver: https://leetcode.com/problems/sudoku-solver/
279- 1 . N-Queens: https://leetcode.com/problems/n-queens/
280-
281- ### Pattern: Modified Binary Search
282-
283- The modified binary search algorithm can be found under ` 11. Modified binary search ` [ here] .
284-
285- #### Easy:
286-
287- 1 . Binary Search: https://leetcode.com/problems/binary-search/
288- 1 . Find Smallest Letter Greater Than Target: https://leetcode.com/problems/find-smallest-letter-greater-than-target/
289- 1 . Peak Index in a Mountain Array: https://leetcode.com/problems/peak-index-in-a-mountain-array/
290-
291- #### Medium:
292-
293- 1 . Find Peak Element: https://leetcode.com/problems/find-peak-element/
294- 1 . Search in Rotated Sorted Array: https://leetcode.com/problems/search-in-rotated-sorted-array/
295- 1 . Search in Rotated Sorted Array II: https://leetcode.com/problems/search-in-rotated-sorted-array-ii/
296- 1 . Search a 2D Matrix: https://leetcode.com/problems/search-a-2d-matrix/
297- 1 . Search a 2D Matrix II: https://leetcode.com/problems/search-a-2d-matrix-ii/
298-
299- #### Hard:
300-
301- 1 . Count of Range Sum: https://leetcode.com/problems/count-of-range-sum/
302-
303- ### Pattern: Top 'K' Elements
304-
305- The top K element technique can be found under ` 12. Top K elements ` [ here] .
306-
307- #### Medium:
308-
309- 1 . Kth Smallest Element in a BST: https://leetcode.com/problems/kth-smallest-element-in-a-bst/
310- 1 . K Closest Points to Origin: https://leetcode.com/problems/k-closest-points-to-origin/
311- 1 . Top K Frequent Elements: https://leetcode.com/problems/top-k-frequent-elements/
312- 1 . Sort Characters By Frequency: https://leetcode.com/problems/sort-characters-by-frequency/
313- 1 . Kth Largest Element in an Array: https://leetcode.com/problems/kth-largest-element-in-an-array/
314- 1 . Find K Closest Elements: https://leetcode.com/problems/find-k-closest-elements/
315- 1 . Reorganize String: https://leetcode.com/problems/reorganize-string/
316-
317- #### Hard:
318-
319- 1 . Rearrange String k Distance Apart: https://leetcode.com/problems/rearrange-string-k-distance-apart
320- 1 . Course Schedule III: https://leetcode.com/problems/course-schedule-iii/
321- 1 . Maximum Frequency Stack: https://leetcode.com/problems/maximum-frequency-stack/
322-
323- ### Pattern: K-Way Merge
324-
325- The k-way merge technique can be found under ` 13. K-way Merge ` [ here] .
326-
327- #### Medium:
328-
329- 1 . Kth Smallest Element in a Sorted Matrix: https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/
330- 1 . Find K Pairs with Smallest Sums: https://leetcode.com/problems/find-k-pairs-with-smallest-sums/
331-
332- #### Hard:
333-
334- 1 . Merge k Sorted Lists: https://leetcode.com/problems/merge-k-sorted-lists/
335- 1 . Smallest Range Covering Elements from K Lists: https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists/
336-
337- ### Pattern : Dynamic Programming
350+ ### Pattern: Two Pointers
338351
339- Dynamic programming guides can be found on [ topcoder] and the [ Back To Back SWE
340- YouTube channel] .
352+ The two pointer approach can be found under ` 2. Two Pointers or Iterators ` [ here] .
341353
342354#### Easy:
343355
344- 1 . Climbing Stairs: https://leetcode.com/problems/climbing-stairs/
345- 1 . House Robber: https://leetcode.com/problems/house-robber/
346- 1 . Maximum Subarray: https://leetcode.com/problems/maximum-subarray/
347- 1 . Range Sum Query - Immutable: https://leetcode.com/problems/range-sum-query-immutable/
348-
349- #### Medium:
350-
351- 1 . Coin Change: https://leetcode.com/problems/coin-change/
352- 1 . Longest Increasing Subsequence: https://leetcode.com/problems/longest-increasing-subsequence/
353- 1 . Number of Longest Increasing Subsequence: https://leetcode.com/problems/number-of-longest-increasing-subsequence/
354- 1 . Partition Equal Subset Sum: https://leetcode.com/problems/partition-equal-subset-sum/
355- 1 . Partition to K Equal Sum Subsets: https://leetcode.com/problems/partition-to-k-equal-sum-subsets/
356- 1 . Best Time to Buy and Sell Stock with Cooldown: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
357- 1 . Counting Bits: https://leetcode.com/problems/counting-bits/
358-
359- ### Pattern: Topological Sort
360-
361- The topological sort algorithm can be found under ` 14. Topological sort ` [ here] .
356+ 1 . Two Sum: https://leetcode.com/problems/two-sum/
357+ 1 . Remove Duplicates from Sorted List: https://leetcode.com/problems/remove-duplicates-from-sorted-list/
358+ 1 . Squares of a Sorted Array: https://leetcode.com/problems/squares-of-a-sorted-array/
359+ 1 . Backspace String Compare: https://leetcode.com/problems/backspace-string-compare
362360
363361#### Medium:
364362
365- 1 . Course Schedule: https://leetcode.com/problems/course-schedule/
366- 1 . Course Schedule II: https://leetcode.com/problems/course-schedule-ii/
367- 1 . Minimum Height Trees: https://leetcode.com/problems/minimum-height-trees/
363+ 1 . 3 Sum: https://leetcode.com/problems/3sum/
364+ 1 . 3 Sum Closest: https://leetcode.com/problems/3sum-closest/
365+ 1 . Subarrays with Product Less than K: https://leetcode.com/problems/subarray-product-less-than-k/
366+ 1 . Sort Colours: https://leetcode.com/problems/sort-colors/
368367
369368#### Hard:
370369
371- 1 . Alien Dictionary: https://leetcode.com/problems/alien-dictionary
372- 1 . Sequence Reconstruction: https://leetcode.com/problems/sequence-reconstruction
370+ 1 . Minimum Window Substring: https://leetcode.com/problems/minimum-window-substring/
371+ 1 . Trapping Rain Water: https://leetcode.com/problems/trapping-rain-water/
372+ 1 . Container With Most Water: https://leetcode.com/problems/container-with-most-water/
373373
374374## Tips to Consider
375375
0 commit comments