leetcode.com , algoexpert.io solutions in python and swift
<h1 align="center">
  <br>
  <a href="https://github.com/partho-maple/coding-interview-gym/archive/master.zip"><img src="leetcode.png"></a>
  <a href="https://github.com/partho-maple/coding-interview-gym/archive/master.zip"><img src="algoexpert.png"></a>
</h1>

[![GitHub last commit][last-commit-shield]][last-commit-url]
[![GitHub repo size in bytes][repo-size-shield]][repo-size-url]
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
[![Travis](https://img.shields.io/badge/language-Swift-green.svg)]()
[![Travis](https://img.shields.io/badge/language-Python-red.svg)]()


<h4 align="center">This repo contains around 700 (600 Leetcode.com and 100 Algoexpert.io) problems in total, with solutions using Swift and Python</h4>

<p align="center">
  This repo contains my solutions to algorithmic problems in <a href="https://leetcode.com/parthobiswas007/">leetcode.com</a> and <a href="https://www.algoexpert.io/questions">algoexpert.io</a> written in <b>Swift</b> and <b>Python</b>.
</p>

<h4 align="center">Show your support by giving it a STAR</h4>

<p align="center">
  <a href="#About">About</a> •
  <a href="#Topics">Topics</a> •
  <a href="#Tips">Tips</a> •
  <a href="#LeetCode">LeetCode.com</a> •
  <a href="#AlgoExpert">AlgoExpert.io</a> •
  <a href="#References">References</a>
</p>

---

---

## About

I have solved quite a number of problems from several topics. See the below table for further details.

## Topics
- Binary Search
- Binary Search Tree
- Binary Tree(Segment Tree)
- N-aray Tree(Trie, Binary Indexed Tree)
- 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
- Backtracking(Permutations & Combinations & Subsets...etc)
- Math
- and more...

## Questions from

- [Leetcode](https://leetcode.com)
- [Algoexpert.io](Algoexpert.io)

## My other related repos

- [Coding Interview Patterns](https://tinyurl.com/wluap5j)
- [Coding Interview Gym](https://tinyurl.com/wt2dbym)
- [iOS Interview Gym](https://tinyurl.com/wt5vyzq)
- [Behavioural Interview Gym](https://tinyurl.com/v65wlwf)
- [System Design Interview Gym](https://tinyurl.com/tr2xkze)
- [Object Oriented Design Interview Gym](https://tinyurl.com/uhlp9sc)

## My leetcode account

- [ParthoBiswas007](https://leetcode.com/ParthoBiswas007/)

## Tips

- Check this **[Golden](https://tinyurl.com/uboo399)** post first.
- Whenever you solve a new question with some new techniques/algorithms, try to solve atleast 2 similar problem in a row. This way, your understanding to the new techniques/algorithms will be better.
- Solve all [leetcode cards](https://leetcode.com/explore/learn/)


---

---


## LeetCode
[![leetcode badge](https://leetcode-badge.chyroc.cn/?name=ParthoBiswas007&leetcode_badge_style=leetcode%20|%20solved/total-{{.solved_question}}/{{.all_question}}-{{if%20le%20.solved_question_rate_float%200.3}}red.svg{{else%20if%20le%20.solved_question_rate_float%200.5}}yellow.svg{{else}}green.svg{{end}}&refresh=true)](https://leetcode.com/ParthoBiswas007/)


### 1. [Arrays](https://leetcode.com/explore/learn/card/array-and-string/) , [HashMap](https://leetcode.com/explore/learn/card/hash-table/), Set
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [1. Two Sum](https://leetcode.com/problems/two-sum/)| [Python](https://tinyurl.com/wu6rdaw/1_Two_Sum.py), [Swift](https://tinyurl.com/to2yjbw/leetcode.com/swift/1_Two_Sum.swift) | --- | --- | ✅ 📌 ⭐ 😭 🧐 😎 |
|02| [485. Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones/)| [Swift](https://tinyurl.com/to2yjbw/leetcode.com/swift/485_Max_Consecutive_Ones.swift)|
|03| [476. Number Complement](https://leetcode.com/problems/number-complement/)| [Swift](https://tinyurl.com/to2yjbw/leetcode.com/swift/476_Number_Complement.swift)|
|04| [461. Hamming Distance](https://leetcode.com/problems/hamming-distance/)| [Swift](https://tinyurl.com/to2yjbw/leetcode.com/swift/461_Hamming_Distance.swift)|
|05| [9. Palindrome Number](https://leetcode.com/problems/palindrome-number/)| [Python](https://tinyurl.com/wu6rdaw/9_Palindrome_Number.py)|
|06| [88. Merge Sorted Array](https://leetcode.com/problems/merge-sorted-array/)| [Python](https://tinyurl.com/wu6rdaw/88_Merge_Sorted_Array.py)|
|07| [811. Subdomain Visit Count](https://leetcode.com/problems/subdomain-visit-#/)| [Python](https://tinyurl.com/wu6rdaw/811_Subdomain_Visit_Count.py)|
|08| [771. Jewels and Stones](https://leetcode.com/problems/jewels-and-stones/)| [Python](https://tinyurl.com/wu6rdaw/771_Jewels_and_Stones.py)|
|09| [414. Third Maximum Number](https://leetcode.com/problems/third-maximum-number/)| [Python](https://tinyurl.com/wu6rdaw/414_Third_Maximum_Number.py)|
|10| [259. 3Sum Smaller](https://leetcode.com/problems/3sum-smaller/)| [Python](https://tinyurl.com/wu6rdaw/259_3Sum_Smaller.py)|
|11| [16. 3Sum Closest](https://leetcode.com/problems/3sum-closest/)| [Python](https://tinyurl.com/wu6rdaw/16_3Sum_Closest.py)|
|12| [15. 3Sum](https://leetcode.com/problems/3sum/)| [Python](https://tinyurl.com/wu6rdaw/15_3Sum.py)|
|13| [118. Pascal's Triangle](https://leetcode.com/problems/pascals-triangle/)| [Python](https://tinyurl.com/wu6rdaw/118_Pascal's_Triangle.py)|
|14| [119. Pascal's Triangle II](https://leetcode.com/problems/pascals-triangle-ii/)| [Python](https://tinyurl.com/wu6rdaw/119_Pascal's_Triangle_II.py)|
|15| [238. Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/solution/)| [Python](https://tinyurl.com/wu6rdaw/238_Product_of_Array_Except_Self.py), [Swift](https://tinyurl.com/wuja3c4/238_Product_of_Array_Except_Self.swift) |
|16| [724. Find Pivot Index](https://leetcode.com/problems/find-pivot-index/)| [Python](https://tinyurl.com/wu6rdaw/724_Find_Pivot_Index.py)| |
|17| [747. Largest Number At Least Twice of Others](https://leetcode.com/problems/largest-number-at-least-twice-of-others/)| [Python](https://tinyurl.com/wu6rdaw/747_Largest_Number_At_Least_Twice_of_Others.py)| |
|18| [581. Shortest Unsorted Continuous Subarray](https://leetcode.com/problems/shortest-unsorted-continuous-subarray/solution/)| [Python](https://tinyurl.com/wu6rdaw/581_Shortest_Unsorted_Continuous_Subarray.py)| |
|19| [904. Fruit Into Baskets](https://leetcode.com/problems/fruit-into-baskets/solution/)| [Python](https://tinyurl.com/wu6rdaw/904_Fruit_Into_Baskets.py)| [Article](https://www.educative.io/courses/grokking-the-coding-interview/Bn2KLlOR0lQ), [Video 1](https://www.youtube.com/watch?v=s_zu2dOkq80), [Video 2](https://www.youtube.com/watch?v=za2YuucS0tw)| Medium | [Sliding Window, Two Pointer](https://github.com/partho-maple/coding-interview-patterns) |
|20| [56. Merge Intervals](https://leetcode.com/problems/merge-intervals/)| [Python](https://tinyurl.com/wu6rdaw/56_Merge_Intervals.py)| [Article](https://leetcode.com/problems/merge-intervals/discuss/21227/7-lines-easy-Python), [Swift](https://tinyurl.com/wuja3c4/56_Merge_Intervals.swift) |
|21| [334. Increasing Triplet Subsequence](https://leetcode.com/problems/increasing-triplet-subsequence/)| [Python](https://tinyurl.com/wu6rdaw/334_Increasing_Triplet_Subsequence.py)| --- | Medium | --- |
|22| [792. Number of Matching Subsequences](https://leetcode.com/problems/number-of-matching-subsequences/)| [Python](https://tinyurl.com/wu6rdaw/792_Number_of_Matching_Subsequences.py)| **[Official](https://leetcode.com/problems/number-of-matching-subsequences/discuss/117634/Efficient-and-simple-go-through-words-in-parallel-with-explanation/)** | Medium | **Very tricky. Check again** |
|23| [912. Sort an Array (Merge Sort)](https://leetcode.com/problems/sort-an-array/)| [Python](https://tinyurl.com/wu6rdaw/912_Sort_an_Array_(Merge__Sort).py)|--- | Medium | --- |
|24| [1118. Number of Days in a Month](https://leetcode.com/problems/number-of-days-in-a-month/)| [Python](https://tinyurl.com/wu6rdaw/1118_-Number_of_Days_in_a_Month.py)|--- | Easy | --- |
|25| [349. Intersection of Two Arrays](https://leetcode.com/problems/intersection-of-two-arrays/)| [Python](https://tinyurl.com/wu6rdaw/349_Intersection_of_Two_Arrays.py)| [Art 1](https://tinyurl.com/rh3s2gp), [Art 2](https://tinyurl.com/ts27qxq) | Easy | **Very tricky and versatile** |
|26| [350. Intersection of Two Arrays II](https://leetcode.com/problems/intersection-of-two-arrays-ii/)| [Python](https://tinyurl.com/wu6rdaw/350_Intersection_of_Two_Arrays_II.py)| [](), [](), []() | Easy | **Very tricky and versatile** |
|27| [303. Range Sum Query - Immutable](https://leetcode.com/problems/range-sum-query-immutable/)| [Python](https://tinyurl.com/wu6rdaw/303_Range_Sum_Query-Immutable.py)| [Vid 1](https://tinyurl.com/qkaq2oa) | Easy | --- |
|28| [560. Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/)| [Python](https://tinyurl.com/wu6rdaw/560_Subarray_Sum_Equals_K.py), [Swift](https://tinyurl.com/wuja3c4/560_Subarray_Sum_Equals_K.swift) | [Art 1](https://tinyurl.com/rd8d7b7), [Art 2](https://tinyurl.com/uhkjk84), [Art 3](https://tinyurl.com/v62x843), [Art 4](https://tinyurl.com/tonp2ye), [Art 5](https://tinyurl.com/uhkjk84), [Art 6](https://tinyurl.com/upuh6ax) | Medium | **Very tricky and persuasive with Sliding Window but it's not. This is a classic running sum problem** |
|29| [325. Maximum Size Subarray Sum Equals k](https://leetcode.com/problems/maximum-size-subarray-sum-equals-k/)| [Python](https://tinyurl.com/wu6rdaw/325_Maximum_Size_Subarray_Sum_Equals_k.py)| [Art 1](https://tinyurl.com/sksjlzg) | Medium | **Very tricky and persuasive with Sliding Window but it's not. This is a classic running sum problem** |
|30| [1074. Number of Submatrices That Sum to Target](https://leetcode.com/problems/number-of-submatrices-that-sum-to-target/)| [Python](https://tinyurl.com/wu6rdaw/1074_Number_of_Submatrices_That_Sum_to_Target.py)| [Art 1](https://tinyurl.com/yydt3tpy), [Art 2](https://tinyurl.com/vhwht5j), [Art 3](https://tinyurl.com/rrelm6y), [Art 4](https://tinyurl.com/s9mwbfy) | Extremely Hard | **Very tricky and hard, check again. Also DP** |
|31| [167. Two Sum II - Input array is sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/)| [Python](https://tinyurl.com/wu6rdaw/167_Two_Sum_II_-_Input_array_is_sorted.py)| --- | Easy | Two pointer basics |
|32| [1099. Two Sum Less Than K](https://leetcode.com/problems/two-sum-less-than-k/)| [Python](https://tinyurl.com/wu6rdaw/1099_Two_Sum_Less_Than_K.py)| --- | Easy | Two pointer basics |
|33| [26. Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/)| [Python](https://tinyurl.com/wu6rdaw/26_Remove_Duplicates_from_Sorted_Array.py)| --- | Easy | Two pointer basics |
|34| [977. Squares of a Sorted Array](https://leetcode.com/problems/squares-of-a-sorted-array/)| [Python](https://tinyurl.com/wu6rdaw/977_Squares_of_a_Sorted_Array.py)| --- | Easy | Two pointer basics |
|35| [713. Subarray Product Less Than K](https://leetcode.com/problems/subarray-product-less-than-k/)| [Python](https://tinyurl.com/wu6rdaw/713_Subarray_Product_Less_Than_K.py)| --- | Medium | Two pointer ad Sliding Window |
|36| [75. Sort Colors](https://leetcode.com/problems/sort-colors/)| [Python](https://tinyurl.com/wu6rdaw/75_Sort_Colors.py)| [Vid 1](https://tinyurl.com/svdmwg8) | Medium | Two pointer |
|37| [18. 4Sum](https://leetcode.com/problems/4sum/)| [Python](https://tinyurl.com/wu6rdaw/18_4Sum.py)| --- | Medium | Two pointer |
|38| [11. Container With Most Water](https://tinyurl.com/r4jdatg)| [Python](https://tinyurl.com/wu6rdaw/11_Container_With_Most_Water.py)| --- | Medium | Two pointer |
|39| [202. Happy Number](https://tinyurl.com/ujm63nf)| [Python](https://tinyurl.com/wu6rdaw/202_Happy_Number.py)| [Art 1](https://tinyurl.com/roegfpt) | Easy | Fast pointer Slow pointer |
|40| [457. Circular Array Loop](http://bit.ly/2skNL8X)| [Python](https://tinyurl.com/wu6rdaw/457_Circular_Array_Loop.py)| --- | Medium | Fast pointer Slow pointer.  Check again |
|41| [448. Find All Numbers Disappeared in an Array](https://tinyurl.com/vd3u4ne)| [Python](https://tinyurl.com/wu6rdaw/448_Find_All_Numbers_Disappeared_in_an_Array.py)| --- | Easy | Cyclic Sort |
|42| [287. Find the Duplicate Number](https://tinyurl.com/ua342v6)| [Python](https://tinyurl.com/wu6rdaw/287_Find_the_Duplicate_Number.py)| --- | Medium | Cyclic Sort. TODO: Check all other approaches |
|43| [442. Find All Duplicates in an Array](https://tinyurl.com/yxxs4vvn)| [Python](https://tinyurl.com/wu6rdaw/442_Find_All_Duplicates_in_an_Array.py)| --- | Medium | Cyclic Sort TODO: Check all other approaches |
|44| [41. First Missing Positive](https://tinyurl.com/tfewwtv)| [Python](https://tinyurl.com/wu6rdaw/41_First_Missing_Positive.py)| --- | Hard | Cyclic Sort, Very important |
|45| **[939. Minimum Area Rectangle](https://tinyurl.com/tcr34w3)** | [Python](https://tinyurl.com/wu6rdaw/939_Minimum_Area_Rectangle.py)| [Art 1](https://tinyurl.com/wfgjaf3) | Medium | Hash and Set, Very important |
|46| **[359. Logger Rate Limiter](https://tinyurl.com/tcr34w3)** | [Python](https://tinyurl.com/wu6rdaw/359_Logger_Rate_Limiter.py)| --- | Easy | Hash and Set, Very important |
|47| **[48. Rotate Image](https://tinyurl.com/yy3z9hab)** | [Python](https://tinyurl.com/wu6rdaw/48_Rotate_Image.py)| [Must](https://tinyurl.com/tr62top), [Vid  1](https://tinyurl.com/uhnruzt) | Medium | Very important |
|48| **[362. Design Hit Counter](https://tinyurl.com/sswrcc3)** | [Python](https://tinyurl.com/wu6rdaw/362_Design_Hit_Counter.py), [Swift](https://tinyurl.com/wuja3c4/362_Design_Hit_Counter.swift)| --- | Medium | --- |
|49| **[289. Game of Life](https://tinyurl.com/y5ujyvu5)** | [Python](https://tinyurl.com/wu6rdaw/289_Game_of_Life.py), [Swift](https://tinyurl.com/wuja3c4/289_Game_of_Life.swift)| --- | Medium | --- |
|50| **[54. Spiral Matrix](https://tinyurl.com/yy5rnvce)** | [Python](https://tinyurl.com/wu6rdaw/54_Spiral_Matrix.py), [Swift](https://tinyurl.com/wuja3c4/54_Spiral_Matrix.swift)| [Official](https://tinyurl.com/s6np53k), [Algoexpert.io](https://www.algoexpert.io/questions/Spiral%20Traverse) | Medium | --- |
|51| **[380. Insert Delete GetRandom O(1)](https://tinyurl.com/y3urnkfj)** | [Python](https://tinyurl.com/wu6rdaw/380_Insert_Delete_GetRandom_O(1).py), [Swift](https://tinyurl.com/wuja3c4/380_Insert_Delete_GetRandom_O(1).swift)| [Official](https://tinyurl.com/t4t38od) | Medium | --- |
|52| **[835. Image Overlap](https://tinyurl.com/r9x9nkm)** | [Python](https://tinyurl.com/wu6rdaw/835_Image_Overlap.py), [Swift](https://tinyurl.com/wuja3c4/835_Image_Overlap.swift)| [Art 1](https://tinyurl.com/tx3gd98), [Art 2](https://tinyurl.com/tnmj6du) | Medium | --- |
|53| **[1051. Height Checker](https://tinyurl.com/scupmnz)** | [Python](https://tinyurl.com/wu6rdaw/1051_Height_Checker.py), [Swift](https://tinyurl.com/wuja3c4/1051_Height_Checker.swift) | --- | Easy |  |
|55| **[683. K Empty Slots](https://tinyurl.com/rbyxknc)** | [Python](https://tinyurl.com/wu6rdaw/683_K_Empty_Slots.py), [Swift](https://tinyurl.com/wuja3c4/683_K_Empty_Slots.swift) | [Art 1](https://tinyurl.com/qsenvnd), [Art 2](https://tinyurl.com/u7g6hhy), [Art 3](https://tinyurl.com/vw42pp7) | Hard | TODO: Check monotonic queue approach. Solved it with sliding widow |
|56| **[849. Maximize Distance to Closest Person](https://tinyurl.com/v44bs88)** | [Python](https://tinyurl.com/wu6rdaw/849_Maximize_Distance_to_Closest_Person.py), [Swift](https://tinyurl.com/wuja3c4/849_Maximize_Distance_to_Closest_Person.swift) | [Art 1](https://tinyurl.com/qsenvnd) | Easy | Not so easy and intuitive. Can be solve is a variety of way. I have used Binary search(A bit over engineered solution). Can be simplifies |
|57| **[283. Move Zeroes](https://tinyurl.com/y5kxjuvc)** | [Python](https://tinyurl.com/wu6rdaw/283_Move_Zeroes.py), [Swift](https://tinyurl.com/wuja3c4/283_Move_Zeroes.swift) | --- | Easy | Not so easy and intuitive. Uses fast and slow pointer |
|58| **[163. Missing Ranges](https://tinyurl.com/s297jm7)** | [Python](https://tinyurl.com/wu6rdaw/163_Missing_Ranges.py), [Swift](https://tinyurl.com/wuja3c4/163_Missing_Ranges.swift) | --- | Medium | Man, it's a very trick problem |
|59| **[1089. Duplicate Zeros](https://tinyurl.com/vdlwjwa)** | [Python](https://tinyurl.com/wu6rdaw/1089_Duplicate_Zeros.py), [Swift](https://tinyurl.com/wuja3c4/1089_Duplicate_Zeros.swift) | [Art 1](https://tinyurl.com/y3b2ynd4) | Easy | Not so easy and intuitive. Check again |
|60| [941. Valid Mountain Array](https://tinyurl.com/tgdqrrk) | [Python](https://tinyurl.com/wu6rdaw/941_Valid_Mountain_Array.py), [Swift](https://tinyurl.com/wuja3c4/941_Valid_Mountain_Array.swift) |  | Easy |  |
|61| [731. My Calendar II](https://tinyurl.com/sde6smv) | [Python](https://tinyurl.com/wu6rdaw/731_My_Calendar_II.py), [Swift](https://tinyurl.com/wuja3c4/731_My_Calendar_II.swift) |  | Medium | Merge interval |
|62| [59. Spiral Matrix II](https://tinyurl.com/pqfjvm7) | [Python](https://tinyurl.com/wu6rdaw/59_Spiral_Matrix_II.py), [Swift](https://tinyurl.com/wuja3c4/59_Spiral_Matrix_II.swift) |  | Medium | loved it |
|63| **[525. Contiguous Array](https://tinyurl.com/txbs9wh)** | [Python](https://tinyurl.com/wu6rdaw/525_Contiguous_Array.py), [Swift](https://tinyurl.com/wuja3c4/525_Contiguous_Array.swift) | [Art 1](https://tinyurl.com/qmbd2vl) | Medium | loved it. Check again |
|64| **[379. Design Phone Directory](https://tinyurl.com/ybs3848v)** | [Python](https://tinyurl.com/wu6rdaw/379_Design_Phone_Directory.py), [Swift](https://tinyurl.com/wuja3c4/379_Design_Phone_Directory.swift) |  | Medium |  |
|65| **[280. Wiggle Sort](https://tinyurl.com/ybnjn6fs)** | [Python](https://tinyurl.com/wu6rdaw/280_Wiggle_Sort.py), [Swift](https://tinyurl.com/wuja3c4/280_Wiggle_Sort.swift) |  | Medium |  |
|66| [246. Strobogrammatic Number](https://tinyurl.com/ycqwsozh) | [Python](https://tinyurl.com/wu6rdaw/246_Strobogrammatic_Number.py), [Swift](https://tinyurl.com/wuja3c4/246_Strobogrammatic_Number.swift) |  | Easy |  |
|67| **[845. Longest Mountain in Array](https://tinyurl.com/y9h5uah5)** | [Python](https://tinyurl.com/wu6rdaw/845_Longest_Mountain_in_Array.py), [Swift](https://tinyurl.com/wuja3c4/845_Longest_Mountain_in_Array.swift) |  | Medium |  |
|68| **[66. Plus One](https://tinyurl.com/yd67rugq)** | [Python](https://tinyurl.com/wu6rdaw/66_Plus_One.py), [Swift](https://tinyurl.com/wuja3c4/66_Plus_One.swift) |  | Easy |  |
|69| **[957. Prison Cells After N Days](https://tinyurl.com/yag46zkm)** | [Python](https://tinyurl.com/wu6rdaw/957_Prison_Cells_After_N_Days.py), [Swift](https://tinyurl.com/wuja3c4/957_Prison_Cells_After_N_Days.swift) | [Art 1](https://tinyurl.com/y7cbf32e), [Art 2](https://tinyurl.com/yd2y66dn), [Art 3](https://tinyurl.com/yczdwnwu), [Art 4](https://tinyurl.com/y8j9b593), [Art 5](https://tinyurl.com/y6u2u42m) | Medium |  |
|70| [1232. Check If It Is a Straight Line](https://tinyurl.com/y932lhyb) | [Python](https://tinyurl.com/wu6rdaw/1232_Check_If_It_Is_a_Straight_Line.py), [Swift](https://tinyurl.com/wuja3c4/1232_Check_If_It_Is_a_Straight_Line.swift) |  | Easy |  |
|71| **[348. Design Tic-Tac-Toe](https://tinyurl.com/ybtrbuso)** | [Python](https://tinyurl.com/wu6rdaw/348_Design_Tic-Tac-Toe.py), [Swift](https://tinyurl.com/wuja3c4/348_Design_Tic-Tac-Toe.swift) | [Vid 1](https://tinyurl.com/y745qzme), [Art 1](https://tinyurl.com/ybvjnmuo) | Medium | A fucking tricky question |
|72| **[1152. Analyze User Website Visit Pattern](https://tinyurl.com/y8q3nw6u)** | [Python](https://tinyurl.com/wu6rdaw/1152_Analyze_User_Website_Visit_Pattern.py), [Swift](https://tinyurl.com/wuja3c4/1152_Analyze_User_Website_Visit_Pattern.swift) | [Art 1](https://tinyurl.com/y9vqr6ja), [Art 2](https://tinyurl.com/y77nax4d), [Art 3](https://tinyurl.com/y8kbvk5y), [Art 4](https://tinyurl.com/ydyxd57p) | Medium | A fucking unclear question and problem. I Fucking disliked it. |
|73| **[953. Verifying an Alien Dictionary](https://tinyurl.com/y8j8e4jo)** | [Python](https://tinyurl.com/wu6rdaw/953_Verifying_an_Alien_Dictionary.py), [Swift](https://tinyurl.com/wuja3c4/953_Verifying_an_Alien_Dictionary.swift) |  | Easy(REALLY!!!) | Don't be fooled by the difficulty label |
|74| **[463. Island Perimeter](https://tinyurl.com/yapqj2yd)** | [Python](https://tinyurl.com/wu6rdaw/463_Island_Perimeter.py), [Swift](https://tinyurl.com/wuja3c4/463_Island_Perimeter.swift) |  | Easy | It's very deceiving, to think it as a grapy ad DFS problem, but it's not. Think simply  |
|75| **[166. Fraction to Recurring Decimal](https://tinyurl.com/ycweccew)** | [Python](https://tinyurl.com/wu6rdaw/166_Fraction_to_Recurring_Decimal.py), [Swift](https://tinyurl.com/wuja3c4/166_Fraction_to_Recurring_Decimal.swift) | [Art 1](https://tinyurl.com/ycuah9vj) | Medium | Hate this problem. Why do companies ask this shit!!!  |
|75| **[311. Sparse Matrix Multiplication](https://tinyurl.com/y9lapcjx)** | [Python](https://tinyurl.com/wu6rdaw/311_Sparse_Matrix_Multiplication.py), [Swift](https://tinyurl.com/wuja3c4/311_Sparse_Matrix_Multiplication.swift) | [Art 1](https://tinyurl.com/ycv24vc4), [Art 2](https://tinyurl.com/ycmqcfw9), [Art 3](https://tinyurl.com/y9az7nef), **[Art 4](https://tinyurl.com/y84lwkya)** | Medium | Very tricky  |
|76| **[896. Monotonic Array](https://tinyurl.com/y8a95fb6)** | [Python](https://tinyurl.com/wu6rdaw/896_Monotonic_Array.py), [Swift](https://tinyurl.com/wuja3c4/896_Monotonic_Array.swift) | --- | Eassy |  |
|77| **[670. Maximum Swap](https://tinyurl.com/y2zhdd33)** | [Python](https://tinyurl.com/wu6rdaw/670_Maximum_Swap.py), [Swift](https://tinyurl.com/wuja3c4/670_Maximum_Swap.swift) | [Art 1](https://tinyurl.com/y8vqklj3) | Medium |  |
|78| **[825. Friends Of Appropriate Ages](https://tinyurl.com/ycgnqxb8)** | [Python](https://tinyurl.com/wu6rdaw/825_Friends_Of_Appropriate_Ages.py), [Swift](https://tinyurl.com/wuja3c4/825_Friends_Of_Appropriate_Ages.swift) | [Art 1](https://tinyurl.com/yd4oal3l) | Medium | Think differently from a different angle. Loved this problem |
|79| **[189. Rotate Array](https://tinyurl.com/yalocp9r)** | [Python](https://tinyurl.com/wu6rdaw/189_Rotate_Array.py), [Swift](https://tinyurl.com/wuja3c4/189_Rotate_Array.swift) | --- | Easy | Getting to inplace (O(n) time and O(1) space) solution is tricky. |
|80| **[1004. Max Consecutive Ones III](https://tinyurl.com/ty23c3s)** | [Python](https://tinyurl.com/wu6rdaw/1004_Max_Consecutive_Ones_III.py), [Swift](https://tinyurl.com/wuja3c4/1004_Max_Consecutive_Ones_III.swift) | --- | Medium | Solution is tricky. |
|81| **[498. Diagonal Traverse](https://tinyurl.com/yccvh3rq)** | [Python](https://tinyurl.com/wu6rdaw/498_Diagonal_Traverse.py), [Swift](https://tinyurl.com/wuja3c4/498_Diagonal_Traverse.swift) | --- | Medium | --- |
|82| **[766. Toeplitz Matrix](https://tinyurl.com/s3z4lem)** | [Python](https://tinyurl.com/wu6rdaw/766_Toeplitz_Matrix.py), [Swift](https://tinyurl.com/wuja3c4/766_Toeplitz_Matrix.swift) | --- | Easy | --- |
|83| **[1031. Maximum Sum of Two Non-Overlapping Subarrays](https://tinyurl.com/y3x46a5t)** | [Python](https://tinyurl.com/wu6rdaw/1031_Maximum_Sum_of_Two_Non_Overlapping_Subarrays.py), [Swift](https://tinyurl.com/wuja3c4/1031_Maximum_Sum_of_Two_Non_Overlapping_Subarrays.swift) | --- | Medium | PrefixSum |
|84| **[1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit](https://tinyurl.com/yysmvobr)** | [Python](https://tinyurl.com/wu6rdaw/1438_Longest_Continuous_Subarray_With_Absolute_Diff_Less_Than_or_Equal_to_Limit.py), [Swift](https://tinyurl.com/wuja3c4/1438_Longest_Continuous_Subarray_With_Absolute_Diff_Less_Than_or_Equal_to_Limit.swift) | (Art 1)[https://tinyurl.com/y69hjhjp], (Art 2)[https://tinyurl.com/y3h2fj2m] | Medium | Sliding window |
|85| **[1428. Leftmost Column with at Least a One](https://tinyurl.com/y3reu3y2)** | [Python](https://tinyurl.com/wu6rdaw/1428_Leftmost_Column_with_at_Least_a_One.py), [Swift](https://tinyurl.com/wuja3c4/1428_Leftmost_Column_with_at_Least_a_One.swift) | --- | Medium | Binary Search |
|86| **[914. X of a Kind in a Deck of Cards](https://tinyurl.com/y39y2k32)** | [Python](https://tinyurl.com/wu6rdaw/914_X_of_a_Kind_in_a_Deck_of_Cards.py), [Swift](https://tinyurl.com/wuja3c4/914_X_of_a_Kind_in_a_Deck_of_Cards.swift) | --- | Easy (Not So) |  |
|87| **[1275. Find Winner on a Tic Tac Toe Game](https://tinyurl.com/y323arde)** | [Python](https://tinyurl.com/wu6rdaw/1275_Find_Winner_on_a_Tic_Tac_Toe_Game.py), [Swift](https://tinyurl.com/wuja3c4/1275_Find_Winner_on_a_Tic_Tac_Toe_Game.swift) | [Art 1](https://tinyurl.com/yyc54qj5) | Easy (Not So) |  |
|88| **[532. K-diff Pairs in an Array](https://tinyurl.com/yyrhmynd)** | [Python](https://tinyurl.com/wu6rdaw/532_K-diff_Pairs_in_an_Array.py), [Swift](https://tinyurl.com/wuja3c4/532_K-diff_Pairs_in_an_Array.swift) | [Art 1](https://tinyurl.com/y5tg5aqd) | Medium |  |
|89| **[128. Longest Consecutive Sequence](https://tinyurl.com/yxzab8pw)** | [Python](https://tinyurl.com/wu6rdaw/128_Longest_Consecutive_Sequence.py), [Swift](https://tinyurl.com/wuja3c4/128_Longest_Consecutive_Sequence.swift) | [Art 1](https://tinyurl.com/y5e34662) | Hard |  |
|90| **[1423. Maximum Points You Can Obtain from Cards](https://tinyurl.com/yxry5n5b)** | [Python](https://tinyurl.com/wu6rdaw/1423_Maximum_Points_You_Can_Obtain_from_Cards.py), [Swift](https://tinyurl.com/wuja3c4/1423_Maximum_Points_You_Can_Obtain_from_Cards.swift) | [Art 1](https://tinyurl.com/y5mohcl3), [Art 2](https://tinyurl.com/y4d7p6wh) | Medium | Very important. Learned new ways of sliding window |
|91| [900. RLE Iterator](https://tinyurl.com/yxry5n5b) | [Python](https://tinyurl.com/wu6rdaw/900_RLE_Iterator.py), [Swift](https://tinyurl.com/wuja3c4/900_RLE_Iterator.swift) | --- | Medium | - |
|92| [954. Array of Doubled Pairs](https://tinyurl.com/yftjpl7m) | [Swift](https://tinyurl.com/wuja3c4/954_Array_of_Doubled_Pairs.swift) | --- | Medium | - |
|93| [853. Car Fleet](https://tinyurl.com/y5h6ggg9) | [Swift](https://tinyurl.com/wuja3c4/853_Car_Fleet.swift) | [Vid 1](https://tinyurl.com/yh628kc9), [Art 1](https://tinyurl.com/ykyq2os5) ] | Medium | - |
|94| [1877. Minimize Maximum Pair Sum in Array](https://tinyurl.com/yj2fbqu3) | [Swift](https://tinyurl.comz/wuja3c4/1877_Minimize_Maximum_Pair_Sum_in_Array.swift) | [Art 1](https://tinyurl.com/ygbnautj) ] | Medium | - |


</p>
</details>


### 2. [String](https://leetcode.com/explore/learn/card/array-and-string/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)| |
|02| [412. Fizz Buzz](https://leetcode.com/problems/fizz-buzz/)| [Swift](https://tinyurl.com/to2yjbw/leetcode.com/swift/412_Fizz_Buzz.swift)|
|03| [937. Reorder Log Files](https://leetcode.com/problems/reorder-data-in-log-files/)| [Python](https://tinyurl.com/wu6rdaw/937_Reorder_Log_Files.py)|
|03| [929. Unique Email Addresses](https://leetcode.com/problems/unique-email-addresses/)| [Python](https://tinyurl.com/wu6rdaw/929_Unique_Email_Addresses.py)|
|04| [7. Reverse Integer](https://leetcode.com/problems/reverse-integer/)| [Python](https://tinyurl.com/wu6rdaw/7_Reverse_Integer.py)|
|05| [13. Roman to Integer](https://leetcode.com/problems/roman-to-integer/)| [Python](https://tinyurl.com/wu6rdaw/13_Roman_to_Integer.py)|
|06| [125. Valid Palindrome](https://leetcode.com/problems/valid-palindrome/)| [Python](https://tinyurl.com/wu6rdaw/125_Valid_Palindrome.py), [Swift](https://tinyurl.com/wuja3c4/125_Valid_Palindrome.swift) |
|07| [161. One Edit Distance](https://leetcode.com/problems/one-edit-distance/)| [Python](https://tinyurl.com/wu6rdaw/161_One_Edit_Distance.py)|
|08| [1119. Remove Vowels from a String](https://leetcode.com/problems/remove-vowels-from-a-string/)| [Python](https://tinyurl.com/wu6rdaw/1119_Remove_Vowels_from_a_String.py)|
|09| [344. Reverse String](https://leetcode.com/problems/reverse-string/)| [Python](https://tinyurl.com/wu6rdaw/344_Reverse_String.py)|
|10| [482. License Key Formatting](https://leetcode.com/problems/license-key-formatting/)| [Python](https://tinyurl.com/wu6rdaw/482_License_Key_Formatting.py)| |
|11| [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)| [Python](https://tinyurl.com/wu6rdaw/3_Longest_Substring_Without_Repeating_Characters.py)| [Vid 1](https://tinyurl.com/tbwjwcf), [Vid 2](https://www.youtube.com/watch?v=3IETreEybaA) | Medium | 📌 Sliding window, Two pointer |
|12| [340. Longest Substring with At Most K Distinct Characters](https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/)| [Python](https://tinyurl.com/wu6rdaw/340_Longest_Substring_with_At_Most_K_Distinct_Characters.py), [Swift](https://tinyurl.com/wuja3c4/340_Longest_Substring_with_At_Most_K_Distinct_Characters.swift) | [Vid 1](https://tinyurl.com/t55ef99), [Art 1](https://tinyurl.com/vxumhku), [Art 2](https://tinyurl.com/ukyev7f) | Hard | 📌 Sliding window, Two pointer |
|13| [159. Longest Substring with At Most Two Distinct Characters](https://leetcode.com/problems/longest-substring-with-at-most-two-distinct-characters/)| [Python](https://tinyurl.com/wu6rdaw/159_Longest_Substring_with_At_Most_Two_Distinct_Characters.py)| [Vid 1](https://tinyurl.com/t55ef99) | Hard | 📌 Sliding window, Two pointer |
|14| [424. Longest Repeating Character Replacement](https://leetcode.com/problems/longest-repeating-character-replacement/)| [Python](https://tinyurl.com/wu6rdaw/424_Longest_Repeating_Character_Replacement.py)| **[Vid 1](https://tinyurl.com/svyns7x)**, [Vid 2](https://tinyurl.com/rj3yt25), [Art 1](https://tinyurl.com/yx34cd9c), [Art 2](https://tinyurl.com/suxeoj3), [Art 3](https://tinyurl.com/slpeqnd), [Art 4](https://tinyurl.com/sje2no8) | Medium | 📌 Sliding window, Very important |
|15| **[76. Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/)** | [Python](https://tinyurl.com/wu6rdaw/76_Minimum_Window_Substring.py)| **[Vid 1](https://tinyurl.com/tv8lqpa)**, **[Vid 2](https://tinyurl.com/v38h4j4)**, **[Vid 3](https://tinyurl.com/ss5ue49)**  | Hard | 📌 Sliding window, Very important |
|16| [727. Minimum Window Subsequence](https://leetcode.com/problems/minimum-window-subsequence/)| [Python](https://tinyurl.com/wu6rdaw/727_Minimum_Window_Subsequence.py)| [Vid 1](https://tinyurl.com/seyskk7), [Art 1](https://tinyurl.com/vs9qedt), [Art 2](https://tinyurl.com/v5tud73)  | Hard | 📌 Sliding window and DP, check the DP approach |
|17| [438. Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/)| [Python](https://tinyurl.com/wu6rdaw/438_Find_All_Anagrams_in_a_String.py), [Swift](https://tinyurl.com/wuja3c4/438_Find_All_Anagrams_in_a_String.swift) | **[Must](https://tinyurl.com/y8jsku3f)**, [Art 1](https://tinyurl.com/wzdp4yp) | Medium | 📌 Sliding window |
|18| [567. Permutation in String](https://leetcode.com/problems/permutation-in-string/)| [Python](https://tinyurl.com/wu6rdaw/567_Permutation_in_String.py)| **[Must](https://tinyurl.com/y8jsku3f)** | Medium | 📌 Sliding window |
|19| [844. Backspace String Compare](https://leetcode.com/problems/backspace-string-compare/)| [Python](https://tinyurl.com/wu6rdaw/844_Backspace_String_Compare.py)| --- | Easy | 📌 Two Pointer |
|20| **[809. Expressive Words](https://tinyurl.com/vuv9uud)**| [Python](https://tinyurl.com/wu6rdaw/809_Expressive_Words.py)| [Art 1](https://tinyurl.com/rzlvfn7) | Medium | 📌 Logic ad analytical prolem |
|21| **[271. Encode and Decode Strings](https://tinyurl.com/u7hce8m)**| [Python](https://tinyurl.com/wu6rdaw/271_Encode_and_Decode_Strings.py)| [Art 1](https://tinyurl.com/wurc9am) | Medium | 📌 TODO: Check the second approach. Very Important |
|22| **[299. Bulls and Cows](https://tinyurl.com/hqcq2v3)**| [Python](https://tinyurl.com/wu6rdaw/299_Bulls_and_Cows.py)| --- | Easy | --- |
|23| **[833. Find And Replace in String](https://tinyurl.com/yxsjcjym)**| [Python](https://tinyurl.com/wu6rdaw/833_Find_And_Replace_in_String.py)| [Art 1](https://tinyurl.com/y5hod6np) | Medium | --- |
|24| **[49. Group Anagrams](https://tinyurl.com/rdcu89b)**| [Python](https://tinyurl.com/wu6rdaw/49_Group_Anagrams.py)| [Art 1](https://tinyurl.com/yxyb5pel), [Algoexpert.io](https://tinyurl.com/qwannee) | Medium | --- |
|25| [551. Student Attendance Record I](https://tinyurl.com/qu89xt8)| [Python](https://tinyurl.com/wu6rdaw/551_Student_Attendance_Record_I.py)|  | Easy | --- |
|26| [242. Valid Anagram](https://tinyurl.com/yguqjw2g)| [Python](https://tinyurl.com/wu6rdaw/242_Valid_Anagram.py), [Swift](https://tinyurl.com/wuja3c4/242_Valid_Anagram.swift) |  | Easy | --- |
|27| [1358. Number of Substrings Containing All Three Characters](https://tinyurl.com/ufhkahy)| [Python](https://tinyurl.com/wu6rdaw/1358_Number_of_Substrings_Containing_All_Three_Characters.py), [Swift](https://tinyurl.com/wuja3c4/1358_Number_of_Substrings_Containing_All_Three_Characters.swift) | [Art 1](https://tinyurl.com/sespxql) | Medium | Sliding Window |
|28| **[459. Repeated Substring Pattern](https://tinyurl.com/tg4sjty)** | [Python](https://tinyurl.com/wu6rdaw/459_Repeated_Substring_Pattern.py), [Swift](https://tinyurl.com/wuja3c4/459_Repeated_Substring_Pattern.swift) | [Art 1](https://tinyurl.com/rrqo8rj) | Easy | I fucking love this problem |
|29| **[681. Next Closest Time](https://tinyurl.com/rdz29j6)** | [Python](https://tinyurl.com/wu6rdaw/681_Next_Closest_Time.py), [Swift](https://tinyurl.com/wuja3c4/681_Next_Closest_Time.swift) | [Art 1](https://tinyurl.com/vupwnhw) | Medium | I feel stupid after trying my first solution |
|30| **[925. Long Pressed Name](https://tinyurl.com/s4jbmmk)** | [Python](https://tinyurl.com/wu6rdaw/925_Long_Pressed_Name.py), [Swift](https://tinyurl.com/wuja3c4/925_Long_Pressed_Name.swift) | --- | Easy |  |
|31| **[949. Largest Time for Given Digits](https://tinyurl.com/ux8dk9e)** | [Python](https://tinyurl.com/wu6rdaw/949_Largest_Time_for_Given_Digits.py), [Swift](https://tinyurl.com/wuja3c4/949_Largest_Time_for_Given_Digits.swift) | --- | Easy | Not so easy |
|32| [788. Rotated Digits](https://tinyurl.com/t9gelfm) | [Python](https://tinyurl.com/wu6rdaw/788_Rotated_Digits.py), [Swift](https://tinyurl.com/wuja3c4/788_Rotated_Digits.swift) | --- | Easy | --- |
|33| [388. Longest Absolute File Path](https://tinyurl.com/svfa3rc) | [Python](https://tinyurl.com/wu6rdaw/388_Longest_Absolute_File_Path.py), [Swift](https://tinyurl.com/wuja3c4/388_Longest_Absolute_File_Path.swift) | --- | Medium | --- |
|34| [616. Add Bold Tag in String](https://tinyurl.com/taftav2) | [Python](https://tinyurl.com/wu6rdaw/616_Add_Bold_Tag_in_String.py), [Swift](https://tinyurl.com/wuja3c4/616_Add_Bold_Tag_in_String.swift) | --- | Medium | Merge intervals(hidden) |
|35| **[678. Valid Parenthesis String](https://tinyurl.com/y9a3g9kq)** | [Python](https://tinyurl.com/wu6rdaw/678_Valid_Parenthesis_String.py), [Swift](https://tinyurl.com/wuja3c4/678_Valid_Parenthesis_String.swift) | [Art 1](https://tinyurl.com/yad2akx6), [Art 2](https://tinyurl.com/y4odwzll), [Art 3](https://tinyurl.com/y7lkgfom), [Art 4](https://tinyurl.com/ycxpeyzn) | Medium | Super tricky. Much check again |
|36| **[273. Integer to English Words](https://tinyurl.com/y7pps4u9)** | [Python](https://tinyurl.com/wu6rdaw/273_Integer_to_English_Words.py), [Swift](https://tinyurl.com/wuja3c4/273_Integer_to_English_Words.swift) |  | Hard | MUST check again |
|37| **[763. Partition Labels](https://tinyurl.com/yapt4n6v)** | [Python](https://tinyurl.com/wu6rdaw/763_Partition_Labels.py), [Swift](https://tinyurl.com/wuja3c4/763_Partition_Labels.swift) |  | Medium |  |
|38| [819. Most Common Word](https://tinyurl.com/ydhwgc33) | [Python](https://tinyurl.com/wu6rdaw/819_Most_Common_Word.py), [Swift](https://tinyurl.com/wuja3c4/819_Most_Common_Word.swift) | [Art 1](https://tinyurl.com/y7u4pzeu) | Easy |  |
|39| [350. Intersection of Two Arrays II](https://tinyurl.com/y9kdrubz) | [Python](https://tinyurl.com/wu6rdaw/350_Intersection_of_Two_Arrays_II.py), [Swift](https://tinyurl.com/wuja3c4/350_Intersection_of_Two_Arrays_II.swift) | --- | Easy | Check the follow-ups |
|40| **[249. Group Shifted Strings](https://tinyurl.com/jsfd4l3)** | [Python](https://tinyurl.com/wu6rdaw/249_Group_Shifted_Strings.py), [Swift](https://tinyurl.com/wuja3c4/249_Group_Shifted_Strings.swift) | [Art 1](https://tinyurl.com/yd4ckev2) | Medium | Tricky one |
|41| **[158. Read N Characters Given Read4 II - Call multiple times](https://tinyurl.com/y6snjozr)** | [Python](https://tinyurl.com/wu6rdaw/158_Read_N_Characters_Given_Read4_II_Call_multiple_times.py), [Swift](https://tinyurl.com/wuja3c4/158_Read_N_Characters_Given_Read4_II_Call_multiple_times.swift) | [Art 1](https://tinyurl.com/y5qu5dgz) | Hard | Good one |
|42| [415. Add Strings](https://tinyurl.com/y7cbq62x) | [Python](https://tinyurl.com/wu6rdaw/415_Add_Strings.py), [Swift](https://tinyurl.com/wuja3c4/415_Add_Strings.swift) | [Art 1](https://tinyurl.com/y6v9uj9o) | Easy | --- |
|43| **[65. Valid Number](https://tinyurl.com/yb6zsj3b)** | [Python](https://tinyurl.com/wu6rdaw/65_Valid_Number.py), [Swift](https://tinyurl.com/wuja3c4/65_Valid_Number.swift) | [Art 1](https://tinyurl.com/ycotov9v) | HARD | A fucking difficult but important problem. Chack DFA approach |
|44| **[791. Custom Sort String](https://tinyurl.com/yag8mcfd)** | [Python](https://tinyurl.com/wu6rdaw/791_Custom_Sort_String.py), [Swift](https://tinyurl.com/wuja3c4/791_Custom_Sort_String.swift) | --- | Medium | Loved this problem |
|45| **[157. Read N Characters Given Read4](https://tinyurl.com/y5g49nqt)** | [Python](https://tinyurl.com/wu6rdaw/157_Read_N_Characte_Given_Read4.py), [Swift](https://tinyurl.com/wuja3c4/157_Read_N_Characte_Given_Read4.swift) | --- | Easy (Not So!) | Loved this problem |
|46| **[722. Remove Comments](https://tinyurl.com/y288v3lv)** | [Python](https://tinyurl.com/wu6rdaw/722_Remove_Comments.py), [Swift](https://tinyurl.com/wuja3c4/722_Remove_Comments.swift) | [Art 1](https://tinyurl.com/y56j4p76) | Medium |  |
|47| **[443. String Compression](https://tinyurl.com/ybll48vn)** | [Python](https://tinyurl.com/wu6rdaw/443_String_Compression.py), [Swift](https://tinyurl.com/wuja3c4/443_String_Compression.swift) | [Art 1](https://tinyurl.com/y5knbkcd) | Medium |  |
|48| **[1525_Number_of_Good_Ways_to_Split_a_String](https://tinyurl.com/yzree7us)** | [Swift](https://tinyurl.com/wuja3c4/1525_Number_of_Good_Ways_to_Split_a_String.swift) | --- | Medium |  |
|48| **[2007_Find_Original_Array_From_Doubled_Array](https://tinyurl.com/yhnzl82h)** | [Swift](https://tinyurl.com/wuja3c4/2007_Find_Original_Array_From_Doubled_Array.swift) | --- | Medium |  |


</p>
</details>


### 3. [Linked List](https://leetcode.com/explore/learn/card/linked-list/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [2. Add Two Numbers](https://leetcode.com/problems/add-two-numbers/)| [Python](https://tinyurl.com/wu6rdaw/2_Add_Two_Numbers.py), [Swift](https://tinyurl.com/wuja3c4/2_Add_Two_Numbers.swift)| --- | Medium | Fundamental |
|02| [707. Design Linked List](https://leetcode.com/problems/design-linked-list/)| [Python](https://tinyurl.com/wu6rdaw/707_Design_Linked_List.py)|
|03| [21. Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/)| [Python](https://tinyurl.com/wu6rdaw/21_Merge_Two_Sorted_Lists.py)| [Algoexpert.io](https://tinyurl.com/r9azs3n), [Vid 1](https://tinyurl.com/t55smdg) | Easy | Fundamental and very very important |
|04| [234. Palindrome Linked List](http://bit.ly/2PuZQAx)| [Python](https://tinyurl.com/wu6rdaw/234_Palindrome_Linked_List.py)| --- | Easy | Fast pointer Slow pointer |
|05| [24. Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs/)| [Python](https://tinyurl.com/wu6rdaw/24_Swap_Nodes_in_Pairs.py)|
|06| [141. Linked List Cycle](https://tinyurl.com/u3vl5za)| [Python](https://tinyurl.com/wu6rdaw/141_Linked_List_Cycle.py)| --- | Easy | Fast pointer Slow pointer |
|07| [142. Linked List Cycle II](https://tinyurl.com/svsaqk7)| [Python](https://tinyurl.com/wu6rdaw/142_Linked_List_Cycle_II.py)| [Art 1](https://tinyurl.com/us8ssdf), [Art 2](https://tinyurl.com/r5ztjpr), [AlgoExpert.io](https://tinyurl.com/r3rskyc) | Medium | Fast pointer Slow pointer |
|08| [876. Middle of the Linked List](http://bit.ly/2YBAgOr)| [Python](https://tinyurl.com/wu6rdaw/876_Middle_of_the_Linked_List.py)| --- | Easy | Fast pointer Slow pointer |
|09| [143. Reorder List](http://bit.ly/35861AZ)| [Python](https://tinyurl.com/wu6rdaw/143_Reorder_List.py)| --- | Medium | Fast pointer Slow pointer |
|10| [19. Remove Nth Node From End of List](http://bit.ly/36gU1xo)| [Python](https://tinyurl.com/wu6rdaw/19_Remove_Nth_Node_From_End_of_List.py)| --- | Medium | Fast pointer Slow pointer |
|11| [817. Linked List Components](https://tinyurl.com/trgps7z)| [Python](https://tinyurl.com/wu6rdaw/817_Linked_List_Components.py)| [Art 1](https://tinyurl.com/ql493bc) | Medium | Uses set/dictionary |
|12| [206. Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)| [Python](https://tinyurl.com/wu6rdaw/206_Reverse_Linked_List.py)| [Vid 1](https://www.youtube.com/watch?v=sYcOK51hl-A), [Vid 2](https://tinyurl.com/y3w3tek4) | Easy | Fundamental |
|13| [92. Reverse Linked List II](https://tinyurl.com/h2kbl8k)| [Python](https://tinyurl.com/wu6rdaw/92_Reverse_Linked_List_II.py)| [educative.io](https://tinyurl.com/ql823xq), [Art 2](https://tinyurl.com/vdwhhv9) | Medium | Fundamental and very important |
|14| [25. Reverse Nodes in k-Group](https://tinyurl.com/syg593o)| [Python](https://tinyurl.com/wu6rdaw/25_Reverse_Nodes_in_k-Group.py)| [educative.io](https://tinyurl.com/s7pns43q), [Art 1](https://tinyurl.com/rfumpm9), [Art 2](https://tinyurl.com/sqd5jsv) | Hard | Fundamental. TODO: Check again |
|15| [24. Swap Nodes in Pairs](https://tinyurl.com/skymfxw)| [Python](https://tinyurl.com/wu6rdaw/24_Swap_Nodes_in_Pairs.py)| [educative.io](https://tinyurl.com/s7pns43q) | Medium | Fundamental |
|16| [61. Rotate List](https://tinyurl.com/vnwzmxo)| [Python](https://tinyurl.com/wu6rdaw/61_Rotate_List.py)| [educative.io](https://tinyurl.com/rojgtv4) | Medium | Fundamental |
|17| [328. Odd Even Linked List](https://tinyurl.com/qnjnarm)| [Python](https://tinyurl.com/wu6rdaw/328_Odd_Even_Linked_List.py)| [Art 1](https://tinyurl.com/r4f9y2s) | Medium | Fundamental |
|18| [148. Sort List](https://tinyurl.com/rdlsc5c)| [Python](https://tinyurl.com/wu6rdaw/148_Sort_List.py)| [Vid 1](https://tinyurl.com/tgrrdzk), [Vid 2](https://tinyurl.com/tuhlf33), [Vid 3](https://tinyurl.com/w3xh8n3), [Art 1](https://tinyurl.com/uvsj8v3) | Medium | Fundamental |
|19| **[23. Merge k Sorted Lists](https://tinyurl.com/u4dpc7r)** | [Python](https://tinyurl.com/wu6rdaw/23_Merge_k_Sorted_Lists.py)| **[educative.io](https://tinyurl.com/vaetc9d), [Art 1](https://tinyurl.com/rybqon6)** | Hard | Very important. TODO: Check heap approach |
|20| [160. Intersection of Two Linked Lists](https://tinyurl.com/rz6nrop)| [Python](https://tinyurl.com/wu6rdaw/160_Intersection_of_Tw_Linked_Lists.py)| [Art 1](https://tinyurl.com/urrs7uy), [Art 2](https://tinyurl.com/wkya7ks) | Easy | --- |
|21| **[138. Copy List with Random Pointer](https://tinyurl.com/uhaw95f)** | [Python](https://tinyurl.com/wu6rdaw/138_Copy_List_with_Random_Pointer.py)| **[Vid 1](https://tinyurl.com/reaqam9), [Art 1](https://tinyurl.com/tnwofvs)** | Medium | **TODO: Check again. Very important. Learned a lot of things** |
|22| **[430. Flatten a Multilevel Doubly Linked List](https://tinyurl.com/sgpamoh)** | [Python](https://tinyurl.com/wu6rdaw/430_Flatten_a_Multilevel_Doubly_Linked_List.py)| [backtobackswe.com](https://tinyurl.com/y9mptlro), **[Vid 1](https://tinyurl.com/tbp99p2), [Art 1](https://tinyurl.com/un8p7f2)** | Medium | **TODO: Check again. Very important. Learned a lot of things** |
|23| **[146. LRU Cache](https://tinyurl.com/zu2qbfl)** | [Python](https://tinyurl.com/wu6rdaw/146_LRU_Cache.py)| **[Vid 1](https://tinyurl.com/rtnhhys), [backtobackswe.com](https://tinyurl.com/vbpvjdc), [algoexpert.io](https://tinyurl.com/t2uhpgn)** | Hard | **TODO: Check again. Very important. Learned a lot of things** |
|24| **[460. LFU Cache](https://tinyurl.com/yannrugv)** | [Python](https://tinyurl.com/wu6rdaw/460_LFU_Cache.py)| **[Vid 1](https://tinyurl.com/rtnhhys), [backtobackswe.com](https://tinyurl.com/vbpvjdc), [algoexpert.io](https://tinyurl.com/t2uhpgn)** | Hard | **TODO: Check again. Very important. Learned a lot of things** |
|25| **[460. LFU Cache](https://tinyurl.com/y7qokgr8)** | [Python](https://tinyurl.com/wu6rdaw/237_Delete_Node_in_a_Linked_List.py)| [Art 1](https://tinyurl.com/rtnhhys) | Easy |  |
|26| **[708. Insert into a Sorted Circular Linked List](https://tinyurl.com/yy5ga9gn)** | [Python](https://tinyurl.com/wu6rdaw/708_Insert_into_a_Sorted_Circular_Linked_List.py), [Swift](https://tinyurl.com/wuja3c4/708_Insert_into_a_Sorted_Circular_Linked_List.swift) | [Art 1](https://tinyurl.com/y4p9krj8) | Medium |  |
|27| **[203. Remove Linked List Elements](https://tinyurl.com/y6bmycyr)** | [Python](https://tinyurl.com/wu6rdaw/203_Remove_Linked_List_Elements.py), [Swift](https://tinyurl.com/wuja3c4/203_Remove_Linked_List_Elements.swift) | --- | Easy |  |
|28| **[432. All O`one Data Structure](https://tinyurl.com/zqkzen4)** | [Python](https://tinyurl.com/wu6rdaw/432_All_O_one_Data_Structure.py), [Swift](https://tinyurl.com/wuja3c4/432_All_O_one_Data_Structure.swift) | [Art 1](https://tinyurl.com/y2ame7dc) | Hard | Super hard and super important |
|29| **[426. Convert Binary Search Tree to Sorted Doubly Linked List](https://tinyurl.com/y5urjasp)** | [Python](https://tinyurl.com/wu6rdaw/426_Convert_Binary_Search_Tree_to_Sorted_Doubly_Linked_List.py), [Swift](https://tinyurl.com/wuja3c4/426_Convert_Binary_Search_Tree_to_Sorted_Doubly_Linked_List.swift) | [Art 1](https://tinyurl.com/yyq67lc7) | Medium  | Super important |
|30| **[1265. Print Immutable Linked List in Reverse](https://tinyurl.com/y5ksjt65)** | [Python](https://tinyurl.com/wu6rdaw/1265_Print_Immutable_Linked_List_in_Reverse.py), [Swift](https://tinyurl.com/wuja3c4/1265_Print_Immutable_Linked_List_in_Reverse.swift) | [Art 1](https://tinyurl.com/yxtb5wv4) | Medium  | Really??  Are we supposed to solve a puzzle in an interview? |


</p>
</details>



### 4.  [Stack, Queue](https://leetcode.com/explore/learn/card/queue-stack/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [20. Valid Parentheses](https://leetcode.com/problems/valid-parentheses/)| [Python](https://tinyurl.com/wu6rdaw/20_Valid_Parentheses.py)|
|02| [155. Min Stack](https://leetcode.com/problems/min-stack/)| [Python](https://tinyurl.com/wu6rdaw/155_Min_Stack.py)|
|03| [84. Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram/)| [Python](https://tinyurl.com/wu6rdaw/84_Largest_Rectangle_in_Histogram.py)| [Video 01](https://www.youtube.com/watch?v=VNbkzsnllsU), [Video 02](https://www.youtube.com/watch?v=RVIh0snn4Qc), [Article 01](https://leetcode.com/problems/largest-rectangle-in-histogram/solution/), [Article 02](https://leetcode.com/problems/largest-rectangle-in-histogram/discuss/28917/AC-Python-clean-solution-using-stack-76ms) | Hard | 📌 Need to revise |
|04| [394. Decode String](https://leetcode.com/problems/decode-string/)| [Python](https://tinyurl.com/wu6rdaw/394_Decode_String.py)| --- | Medium | 📌 Classic stack problem |
|05| **[239. Sliding Window Maximum](https://tinyurl.com/rvhujl5)** | [Python](https://tinyurl.com/wu6rdaw/239_Sliding_Window_Maximum.py)| **[Video 1](https://tinyurl.com/v767bl3)**, [Official](https://tinyurl.com/www4np2), [Art 1](https://tinyurl.com/y8nbroux), [Art 2](https://tinyurl.com/s62fzls), **[Art 3](https://tinyurl.com/vd3dtch)**, **[Art 4](https://tinyurl.com/yx3sjp46)** | Hard | 📌 Can be solved using Heap, Deque and DP |
|06| [739. Daily Temperatures](https://tinyurl.com/ybbezzmt)| [Python](https://tinyurl.com/wu6rdaw/739_Daily_Temperatures.py)| **[Video 1](https://tinyurl.com/sdbkh3z)**, **[Video 2](https://tinyurl.com/rbvaozl)**, [Art 1](https://tinyurl.com/ss3d9tx) | Medium | 📌 TODO: Check again. A tricky one |
|07| **[150. Evaluate Reverse Polish Notation](https://tinyurl.com/y2xrje8v)** | [Python](https://tinyurl.com/wu6rdaw/150_Evaluate_Reverse_Polish_Notation.py), [Swift](https://tinyurl.com/wuja3c4/150_Evaluate_Reverse_Polish_Notation.swift)| [Vid 1](https://tinyurl.com/s92fp4r) | Medium | --- |
|08| **[341. Flatten Nested List Iterator](https://tinyurl.com/y6saxwjz)** | [Python](https://tinyurl.com/wu6rdaw/341_Flatten_Nested_List_Iterator.py), [Swift](https://tinyurl.com/wuja3c4/341_Flatten_Nested_List_Iterator.swift)| [Vid 1](https://tinyurl.com/vkj4qll), [Art 1](https://tinyurl.com/wnvvafx), [Art 2](https://tinyurl.com/wmrlxmz), [Art 3](https://tinyurl.com/uplntb3), **[Art 4](https://tinyurl.com/v3q9qfw)**, **[Art 5](https://tinyurl.com/rotxca8)** | Medium | TODO: Check again. Very Important. Learned new things |
|09| **[173. Binary Search Tree Iterator](https://tinyurl.com/wp2o8h2)** | [Python](https://tinyurl.com/wu6rdaw/173_Binary_Search_Tree_Iterator.py), [Swift](https://tinyurl.com/wuja3c4/173_Binary_Search_Tree_Iterator.swift), [Swift](https://tinyurl.com/wuja3c4/173_Binary_Search_Tree_Iterator.swift)| [Vid 1](https://tinyurl.com/vb62v3q), **[Art 1](https://tinyurl.com/smu9ku3)** | Medium | TODO: Check again. Very Important. Learned new things |
|10| **[284. Peeking Iterator](https://tinyurl.com/wp2o8h2)** | [Python](https://tinyurl.com/wu6rdaw/284_Peeking_Iterator.py), [Swift](https://tinyurl.com/wuja3c4/284_Peeking_Iterator.swift)| **[Art 1](https://tinyurl.com/wv4ufcz)** | Medium | --- |
|11| **[281. Zigzag Iterator](https://tinyurl.com/rxgn345)** | [Python](https://tinyurl.com/wu6rdaw/281_Zigzag_Iterator.py), [Swift](https://tinyurl.com/wuja3c4/281_Zigzag_Iterator.swift)| **[Art 1](https://tinyurl.com/wv4ufcz)** | Medium | --- |
|12| **[946. Validate Stack Sequences](https://tinyurl.com/u8wbaqp)** | [Python](https://tinyurl.com/wu6rdaw/946_Validate_Stack_Sequences.py), [Swift](https://tinyurl.com/wuja3c4/946_Validate_Stack_Sequences.swift)| **[Art 1](https://tinyurl.com/um2r3bf)**, **[Art 2](https://tinyurl.com/vc5wmlj)** | Medium | --- |
|13| **[862. Shortest Subarray with Sum at Least K](https://tinyurl.com/wzdraag)** | [Python](https://tinyurl.com/wu6rdaw/862_Shortest_Subarray_with_Sum_at_Least_K.py), [Swift](https://tinyurl.com/wuja3c4/862_Shortest_Subarray_with_Sum_at_Least_K.swift)| **[Art 1](https://tinyurl.com/rn7rsnf)**, **[Art 2](https://tinyurl.com/ra3ttcg)**, **[Art 3](https://tinyurl.com/swqs6cq)**, **[Art 4](https://tinyurl.com/t8tjjk2)** | Hard | Learned Monotonic Queue. Very interesting problem |
|14| [346. Moving Average from Data Stream](https://tinyurl.com/sfmwtr5) | [Python](https://tinyurl.com/wu6rdaw/346_Moving_Average_from_Data_Stream.py), [Swift](https://tinyurl.com/wuja3c4/346_Moving_Average_from_Data_Stream.swift)|  | Easy |  |
|15| **[71. Simplify Path](https://tinyurl.com/y9eqaxkh)** | [Python](https://tinyurl.com/wu6rdaw/71_Simplify_Path.py), [Swift](https://tinyurl.com/wuja3c4/71_Simplify_Path.swift)|  | Medium |  |
|16| **[1249. Minimum Remove to Make Valid Parentheses](https://tinyurl.com/y73258qd)** | [Python](https://tinyurl.com/wu6rdaw/1249_Minimum_Remove_to_Make_Valid_Parentheses.py), [Swift](https://tinyurl.com/wuja3c4/1249_Minimum_Remove_to_Make_Valid_Parentheses.swift)| [Official](https://tinyurl.com/ycku9nbn) | Medium | Must check |
|17| **[636. Exclusive Time of Functions](https://tinyurl.com/y7fkfomp)** | [Python](https://tinyurl.com/wu6rdaw/636_Exclusive_Time_of_Functions.py), [Swift](https://tinyurl.com/wuja3c4/636_Exclusive_Time_of_Functions.swift)| [Art 1](https://tinyurl.com/yd5rtdkl) | Medium | Must check |
|18| **[921. Minimum Add to Make Parentheses Valid](https://tinyurl.com/wjv6txp)** | [Python](https://tinyurl.com/wu6rdaw/921_Minimum_Add_to_Make_Parentheses_Valid.py), [Swift](https://tinyurl.com/wuja3c4/921_Minimum_Add_to_Make_Parentheses_Valid.swift)| --- | Medium | --- |
|19| **[1209. Remove All Adjacent Duplicates in String II](https://tinyurl.com/y3e4gsgv)** | [Python](https://tinyurl.com/wu6rdaw/1209_Remove_All_Adjacent_Duplicates_in_String_II.py), [Swift](https://tinyurl.com/wuja3c4/1209_Remove_All_Adjacent_Duplicates_in_String_II.swift)| --- | Medium | --- |
|20| **[227. Basic Calculator II](https://tinyurl.com/y5g4u5by)** | [Python](https://tinyurl.com/wu6rdaw/227_Basic_Calculator_II.py), [Swift](https://tinyurl.com/wuja3c4/227_Basic_Calculator_II.swift)| [Art 1](https://tinyurl.com/y3dnn3zl) | Medium | --- |
|21| **[735. Asteroid Collision](https://tinyurl.com/y2dvawxw)** | [Swift](https://tinyurl.com/wuja3c4/735_Asteroid_Collision.swift)| [Vid 1](https://tinyurl.com/yf8s4ok7), [Art 1](https://tinyurl.com/yzkbhhh6), [Art 1](https://tinyurl.com/yja9dyz4) | Medium | --- |

</p>
</details>



### 5. [Heaps](https://www.youtube.com/watch?v=HqPJF2L5h9U)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| **[358. Rearrange String k Distance Apart](https://tinyurl.com/rb5nvc9)** | [Python](https://tinyurl.com/wu6rdaw/358_Rearrange_String_k_Distance_Apart.py)| [Educative.io](https://tinyurl.com/yx3b8y2s), [Educative.io 2](https://tinyurl.com/saw9w7x) | Hard | 📌 Similar to [621. Task Scheduler](https://leetcode.com/problems/task-scheduler/). Very Important. TODO: Check Heap approach |
|02| [347. Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/solution/)| [Python](https://tinyurl.com/wu6rdaw/347_Top_K_Frequent_Elements.py)| [educative.io](https://tinyurl.com/r3by7v6), [Helper 1](https://stackoverflow.com/questions/19979518/what-is-pythons-heapq-module), [Helper 2](https://stackoverflow.com/a/12373856/2089253), [heapq](https://docs.python.org/3.0/library/heapq.html), [Counter](https://docs.python.org/3/library/collections.html#collections.Counter) | Medium | --- |
|03| [767. Reorganize String](https://leetcode.com/problems/reorganize-string/)| [Python](https://tinyurl.com/wu6rdaw/767_Reorganize_String.py)| --- | Medium | Also check Greedy approach |
|04| **[621. Task Scheduler](https://tinyurl.com/vumg8r8)** | [Python](https://tinyurl.com/wu6rdaw/621_Task_Scheduler.py), [Swift](https://tinyurl.com/wuja3c4/621_Task_Scheduler.swift)| [Ex 1](https://tinyurl.com/y6x6jrz4), [Ex 2](https://tinyurl.com/rmlstk3), [Vid 1](https://www.youtube.com/watch?v=hVhOeaONg1Y), [Vid 2](https://www.youtube.com/watch?v=zPtI8q9gvX8), [Vid 3](https://www.youtube.com/watch?v=TV9VlHUR-Is), [Vid 4](https://www.youtube.com/watch?v=cr6Ip0J9izc&t=22s) | Medium | 📌 Extremely tricky. Classic problem |
|05| **[295. Find Median from Data Stream](https://leetcode.com/problems/find-median-from-data-stream/)**| [Python](https://tinyurl.com/wu6rdaw/295_Find_Median_from_Data_Stream.py)| **[algoexpert.io](https://tinyurl.com/vwuybol), [educative.io](https://tinyurl.com/tlorqup), [educative.io 2](https://tinyurl.com/v5sxd8y), [codinginterviewclass.com](https://tinyurl.com/yxy2r3qq), [Official](https://tinyurl.com/vrx3xqv), [FollowUp 1](https://tinyurl.com/s7q75zr)** | Hard | 📌 **Very Tricky and important. TODO: Check again** |
|06| **[480. Sliding Window Median](https://leetcode.com/problems/sliding-window-median/)** | [Python](https://tinyurl.com/wu6rdaw/480_Sliding_Window_Median.py)| [educative.io](https://tinyurl.com/rp96568), [Vid 1](https://tinyurl.com/uz66xbf) | Hard | 📌 Sliding window with 2 heap. very important |
|07| **[4. Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/)** | [Python](https://tinyurl.com/wu6rdaw/4_Median_of_Two_Sorted_Arrays.py)| [Article 01](https://tinyurl.com/wn5w5j2), [Art 2](https://tinyurl.com/qm3fbbu) [Video 1](https://www.youtube.com/watch?v=LPFhl65R7ww)| Hard | 📌 Classic problem |
|08| [215. Kth Largest Element in an Array](https://tinyurl.com/y6cjzgbv) | [Python](https://tinyurl.com/wu6rdaw/215_Kth_Largest_Element_in_an_Array.py)| [Art 01](https://tinyurl.com/svnozo2), [Algoexpert.io](https://tinyurl.com/rjzx5hw), [educative.io](https://tinyurl.com/r34urrx)| Medium | 📌 Also check Quickselect method. |
|09| **[373. Find K Pairs with Smallest Sums](https://tinyurl.com/w9succr)** | [Python](https://tinyurl.com/wu6rdaw/373_Find_K_Pairs_with_Smallest_Sums.py)| [educative.io](https://tinyurl.com/r8ovn6v) | Hard | 📌 TODO: Check again. |
|10| [973. K Closest Points to Origin](https://tinyurl.com/t4d3ge7) | [Python](https://tinyurl.com/wu6rdaw/973_K_Closest_Points_to_Origin.py)| [Algoexpert.io](https://tinyurl.com/rjzx5hw), [educative.io](https://tinyurl.com/vppeh5y), [Vid 1](https://tinyurl.com/wey8mub) | Medium | 📌 Also check Quickselect and heap method |
|11| [451. Sort Characters By Frequency](https://tinyurl.com/y8x876bf) | [Python](https://tinyurl.com/wu6rdaw/451_Sort_Characters_By_Frequency.py)| [Algoexpert.io](https://tinyurl.com/rjzx5hw), [educative.io](https://tinyurl.com/vtk3de8) | Medium | 📌 Also check Quickselect and heap method |
|12| [692. Top K Frequent Words](https://tinyurl.com/yx69p89s) | [Python](https://tinyurl.com/wu6rdaw/692_Top_K_Frequent_Words.py)| [Algoexpert.io](https://tinyurl.com/rjzx5hw), [educative.io](https://tinyurl.com/vtk3de8) | Medium | 📌 Also check Quickselect and heap method |
|13| [703. Kth Largest Element in a Stream](https://tinyurl.com/wqrgost) | [Python](https://tinyurl.com/wu6rdaw/703_Kth_Largest_Element_in_a_Stream.py)| [educative.io](https://tinyurl.com/uajjww8) | Medium | 📌 --- |
|14| [895. Maximum Frequency Stack](https://tinyurl.com/szdk34w) | [Python](https://tinyurl.com/wu6rdaw/895_Maximum_Frequency_Stack.py)| [educative.io](https://tinyurl.com/w5cd6yh), [Art 1](https://tinyurl.com/y94jodcf) | Hard | 📌 TODO: Check again |
|15| **[378. Kth Smallest Element in a Sorted Matrix](https://tinyurl.com/shz4289)** | [Python](https://tinyurl.com/wu6rdaw/378_Kth_Smallest_Element_in_a_Sorted_Matrix.py)| [educative.io](https://tinyurl.com/scbjgjd) | Hard | 📌 TODO: Check again the Binary Search approach. Very important |
|16| **[632. Smallest Range Covering Elements from K Lists](https://tinyurl.com/v3fshwo)** | [Python](https://tinyurl.com/wu6rdaw/632_Smallest_Range_Covering_Elements_from_K_Lists.py)| [educative.io](https://tinyurl.com/ubfua7f) | Hard | 📌 TODO: Check again. Very important |
|17| **[846. Hand of Straights](https://tinyurl.com/y2hfqqsv)** | [Python](https://tinyurl.com/wu6rdaw/846_Hand_of_Straights.py)| **[Art 1](https://tinyurl.com/w8pkf55)** | Medium | 📌 TODO: Check again. Very important |
|18| **[1167. Minimum Cost to Connect Sticks](https://tinyurl.com/y8s5s8pq)** | [Python](https://tinyurl.com/wu6rdaw/1167_Minimum_Cost_to_Connect_Sticks.py)| [Art 1](https://tinyurl.com/ycedphuh) | Medium |  |
|19| **[1102. Path With Maximum Minimum Value](https://tinyurl.com/y7zqxqpq)** | [Python](https://tinyurl.com/wu6rdaw/1102_Path_With_Maximum_Minimum_Value.py)| [Art 1](https://tinyurl.com/yb7p48lk), [Art 2](https://tinyurl.com/ya34o3z2), [Art 3](https://tinyurl.com/y99bhurp) | Medium | Dijekstra |
|20| **[1834. Single-Threaded CPU](https://tinyurl.com/yk66fo4v)** | [Swift](https://tinyurl.com/wuja3c4/1834_Single_Threaded_CPU.swift) | [Art 1](https://tinyurl.com/yjbn9uzs) | Medium | --- |

</p>
</details>



### 6. [Binary Search](https://leetcode.com/explore/learn/card/binary-search/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [704. Binary Search](https://leetcode.com/problems/binary-search/)| [Python](https://tinyurl.com/wu6rdaw/704_Binary_Search.py)| --- | Easy | Basics |
|03| [240. Search a 2D Matrix II](https://leetcode.com/problems/search-a-2d-matrix-ii/solution/)| [Python](https://tinyurl.com/wu6rdaw/240_Search_a_2D_Matrix_II.py)| [Video 01](https://www.youtube.com/watch?v=FOa55B9Ikfg), [Video 02](https://www.youtube.com/watch?v=DHSyS72BvOQ)|
|04| [74. Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/)| [Python](https://tinyurl.com/wu6rdaw/74_Search_a_2D_Matrix.py)| [Video 01](https://www.youtube.com/watch?v=FOa55B9Ikfg), [Video 02](https://www.youtube.com/watch?v=DHSyS72BvOQ)|
|05| [1011. Capacity To Ship Packages Within D Days](https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/)| [Python](https://tinyurl.com/wu6rdaw/1011_Capacity_To_Ship_Packages_Within_D_Days.py)| [Discussion 1](https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/discuss/346505/Binary-classification-Python.-Detailed-explanation-Turtle-Code), [Discussion 2](https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/discuss/256765/Python-Binary-search-with-detailed-explanation), [Discussion 3](https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/discuss/256729/JavaC++Python-Binary-Search/306543) | Medium | Difficult to spot the pattern, revise again |
|06| **[410. Split Array Largest Sum](https://leetcode.com/problems/split-array-largest-sum/)** | [Python](https://tinyurl.com/wu6rdaw/410_Split_Array_Largest_Sum.py)| [Vid 1](https://tinyurl.com/s3j99m4), [Art 1](https://tinyurl.com/vf43ly3), [Art 2](https://tinyurl.com/t8szkym) | Hard | 📌 TODO: Check again. It's a fucking difficult and interesting and important |
|07| **[4. Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/)** | [Python](https://tinyurl.com/wu6rdaw/4_Median_of_Two_Sorted_Arrays.py)| [Article 01](https://tinyurl.com/wn5w5j2), [Art 2](https://tinyurl.com/qm3fbbu) [Video 1](https://www.youtube.com/watch?v=LPFhl65R7ww)| Hard | 📌 Classic problem |
|08| [981. Time Based Key-Value Store](https://leetcode.com/problems/time-based-key-value-store/)| [Python](https://tinyurl.com/wu6rdaw/981_Time_Based_Key-Value_Store.py)| [Article 01](https://leetcode.com/problems/time-based-key-value-store/solution/)| Medium | 📌  |
|09| [**222. Count Complete Tree Nodes](https://leetcode.com/problems/count-complete-tree-nodes/)**| [Python](https://tinyurl.com/wu6rdaw/222_Count_Complete_Tree_Nodes.py), [Swift](https://tinyurl.com/wuja3c4/222_Count_Complete_Tree_Nodes.swift)| [Theory](http://www.mathcs.emory.edu/~cheung/Courses/171/Syllabus/9-BinTree/bin-tree.html), [Official Solution](https://leetcode.com/problems/count-complete-tree-nodes/solution/), [Fantastic idea!](https://tinyurl.com/y5s43jtt) | Medium | 📌 BS within BS |
|10| [1231. Divide Chocolate](https://leetcode.com/problems/divide-chocolate/)| [Python](https://tinyurl.com/wu6rdaw/1231_Divide_Chocolate.py)| [Art 1](https://tinyurl.com/sl7w7cb), [Art 2](https://tinyurl.com/vabdbzo), [Art 3](https://tinyurl.com/v4cablt), [Vid 1](https://www.youtube.com/watch?v=vq2OXjXQPYw&feature=emb_title) | Hard | 📌 **Not done. Check again. Solve all similar question** |
|11| [69. Sqrt(x)](https://leetcode.com/problems/sqrtx/)| [Python](https://tinyurl.com/wu6rdaw/69_Sqrt(x).py)| --- | Easy | 📌 [Binary Search Template I](https://leetcode.com/explore/learn/card/binary-search/125/template-i/938/) |
|12| [374. Guess Number Higher or Lower](https://leetcode.com/problems/guess-number-higher-or-lower/)| [Python](https://tinyurl.com/wu6rdaw/374_Guess_Number_Higher_or_Lower.py)| --- | Easy | 📌 [Binary Search Template I](https://leetcode.com/explore/learn/card/binary-search/125/template-i/938/) |
|13| **[33. Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/)** | [Python](https://tinyurl.com/wu6rdaw/33_Search_in_Rotated_Sorted_Array.py), [Swift](https://tinyurl.com/wuja3c4/33_Search_in_Rotated_Sorted_Array.swift) | [Educative.io](https://tinyurl.com/ufcqj97) | Medium | 📌 **[Binary Search Template I](https://leetcode.com/explore/learn/card/binary-search/125/template-i/938/), Very important**|
|14| [81. Search in Rotated Sorted Array II](https://leetcode.com/problems/search-in-rotated-sorted-array-ii/)| [Python](https://tinyurl.com/wu6rdaw/81_Search_in_Rotated_Sorted_Array_II.py)| --- | Medium | 📌 **[Binary Search Template I](https://leetcode.com/explore/learn/card/binary-search/125/template-i/938/), very important**|
|15| [278. First Bad Version](https://leetcode.com/problems/first-bad-version/)| [Python](https://tinyurl.com/wu6rdaw/278_First_Bad_Version.py)| --- | Easy | 📌 **[Binary Search Template II](https://tinyurl.com/t6v6et3)**|
|16| [162. Find Peak Element](https://leetcode.com/problems/find-peak-element/)| [Python](https://tinyurl.com/wu6rdaw/162_Find_Peak_Element.py)| --- | Medium | 📌 **[Binary Search Template II](https://tinyurl.com/t6v6et3)**|
|17| **[153. Find Minimum in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/)** | [Python](https://tinyurl.com/wu6rdaw/153_Find_Minimum_in_Rotated_Sorted_Array.py), [Swift](https://tinyurl.com/wuja3c4/153_Find_Minimum_in_Rotated_Sorted_Array.swift)| --- | Medium | 📌 **[Binary Search Template II](https://tinyurl.com/t6v6et3)**|
|18| [154. Find Minimum in Rotated Sorted Array II](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/)| [Python](https://tinyurl.com/wu6rdaw/154_Find_Minimum_in_Rotated_Sorted_Array_II.py)| --- | Hard | 📌 **[Binary Search Template II](https://tinyurl.com/t6v6et3), not done**|
|19| [34. Find First and Last Position of Element in Sorted Array](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/)| [Python](https://tinyurl.com/wu6rdaw/34_Find_First_and_Last_Position_of_Element_in_Sorted_Array.py), [Swift](https://tinyurl.com/wuja3c4/34_Find_First_and_Last_Position_of_Element_in_Sorted_Array.swift) | [Vid 1](https://tinyurl.com/wa2zqff), [Educative.io](https://tinyurl.com/s4hvqqz) | Medium | 📌 **[Binary Search Template III](https://tinyurl.com/vpsn3w8)**|
|20| [658. Find K Closest Elements](https://tinyurl.com/rkpkjfo)| [Python](https://tinyurl.com/wu6rdaw/658_Find_K_Closest_Elements.py)| [Vid 1](https://tinyurl.com/w5ccjoe), [educative.io](https://tinyurl.com/uogulbz) | Medium | 📌 **[Binary Search Template III](https://tinyurl.com/vpsn3w8)**. TODO: Check Heap approach which is not done|
|21| [702. Search in a Sorted Array of Unknown Size](https://leetcode.com/problems/search-in-a-sorted-array-of-unknown-size/)| [Python](https://tinyurl.com/wu6rdaw/702_Search_in_a_Sorted_Array_of_Unknown_Size.py)| [Educative.io](https://tinyurl.com/qn6uuel) | Medium | 📌 [Binary Search Template I](https://leetcode.com/explore/learn/card/binary-search/125/template-i/938/) |
|22| **[378. Kth Smallest Element in a Sorted Matrix](https://tinyurl.com/shz4289)** | [Python](https://tinyurl.com/wu6rdaw/378_Kth_Smallest_Element_in_a_Sorted_Matrix.py)| [educative.io](https://tinyurl.com/scbjgjd) | Hard | 📌 TODO: Check again the Binary Search approach. Very important |
|23| **[1146. Snapshot Array](https://tinyurl.com/v3nb29v)** | [Python](https://tinyurl.com/wu6rdaw/1146_Snapshot_Array.py)| [Art 1](https://tinyurl.com/v3nb29v) | Medium | Tricky use of binary search |
|24| **[1170. Compare Strings by Frequency of the Smallest Character](https://tinyurl.com/tcr34w3)** | [Python](https://tinyurl.com/wu6rdaw/1170_Compare_Strings_by_Frequency_of_the_Smallest_Character.py)| --- | Easy | Binary Search, Very important |
|25| [852. Peak Index in a Mountain Array](https://tinyurl.com/rh5c4hs) | [Python](https://tinyurl.com/wu6rdaw/852_Peak_Index_in_a_Mountain_Array.py), [Swift](https://tinyurl.com/wuja3c4/852_Peak_Index_in_a_Mountain_Array.swift) | --- | Easy | --- |
|25| **[209. Minimum Size Subarray Sum](https://tinyurl.com/wy5g8c4)** | [Python](https://tinyurl.com/wu6rdaw/209_Minimum_Size_Subarray_Sum.py), [Swift](https://tinyurl.com/wuja3c4/209_Minimum_Size_Subarray_Sum.swift) | --- | Medium | Sliding window and Binary Search |
|26| **[363. Max Sum of Rectangle No Larger Than K](https://tinyurl.com/wxc73z6)** | [Python](https://tinyurl.com/wu6rdaw/363_Max_Sum_of_Rectangle_No_Larger_Than_K.py), [Swift](https://tinyurl.com/wuja3c4/363_Max_Sum_of_Rectangle_No_Larger_Than_K.swift) | [Vid 1](https://tinyurl.com/rq5sgfp), [Vid 2](https://tinyurl.com/wtyob94), [Art 1](https://tinyurl.com/vtj3d2d), [Art 2](https://tinyurl.com/w29ebes), [Art 3](https://tinyurl.com/yxx4yzvn) | Hard | DP and BS. Disn't understand S part. TODO: Check again |
|27| **[875. Koko Eating Bananas](https://tinyurl.com/wjygtev)** | [Python](https://tinyurl.com/wu6rdaw/875_Koko_Eatin_Bananas.py), [Swift](https://tinyurl.com/wuja3c4/875_Koko_Eatin_Bananas.swift) | --- | Medium | I loved this problem |
|28| **[1060. Missing Element in Sorted Array](https://tinyurl.com/t3z7cav)** | [Python](https://tinyurl.com/wu6rdaw/1060_Missing_Element_in_Sorted_Array.py), [Swift](https://tinyurl.com/wuja3c4/1060_Missing_Element_in_Sorted_Array.swift) | --- | Medium | I loved this problem |
|29| **[1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold](https://tinyurl.com/uahn37k)** | [Python](https://tinyurl.com/wu6rdaw/1292_Maximum_Side_Length_of_a_Square_with_Sum_Less_than_or_Equal_to_Threshold.py), [Swift](https://tinyurl.com/wuja3c4/1292_Maximum_Side_Length_of_a_Square_with_Sum_Less_than_or_Equal_to_Threshold.swift) | [Art 1](https://tinyurl.com/t9zgbkn) | Medium | I loved this problem. Sliding window and Binary Search |
|30| **[774. Minimize Max Distance to Gas Station](https://tinyurl.com/w2hznvj)** | [Python](https://tinyurl.com/wu6rdaw/774_Minimize_Max_Distance_to_Gas_Station.py), [Swift](https://tinyurl.com/wuja3c4/774_Minimize_Max_Distance_to_Gas_Station.swift) | [Vid 1](https://tinyurl.com/tjmrjgq), [Art 1](https://tinyurl.com/teqxwh8), [Art 2](https://tinyurl.com/szc6bjw), [Art 1](https://tinyurl.com/sfc5d2j) | Hard | I loved this problem. Very important |
|31| **[1231. Divide Chocolate](https://tinyurl.com/rduxzj3)** | [Python](https://tinyurl.com/wu6rdaw/1231_Divide_Chocolate.py), [Swift](https://tinyurl.com/wuja3c4/1231_Divide_Chocolate.swift) | [Art 1](https://tinyurl.com/sl7w7cb), [Art 2](https://tinyurl.com/w9wbcyl), [Art 3](https://tinyurl.com/te6wq5e) | Hard | I loved this problem. Very important |
|32| **[1268. Search Suggestions System](https://tinyurl.com/ybwcd5nx)** | [Python](https://tinyurl.com/wu6rdaw/1268_Search_Suggestions_System.py), [Swift](https://tinyurl.com/wuja3c4/1268_Search_Suggestions_System.swift) | [Art 1](https://tinyurl.com/yac3kvrp), [Art 2](https://tinyurl.com/y9u3g66q), [Art 3](https://tinyurl.com/yc2u3mrx) | Medium | I loved this problem. Very versatile, ca be solved in a lot of different ways |
|33| **[540. Single Element in a Sorted Array](https://tinyurl.com/y78xdorh)** | [Python](https://tinyurl.com/wu6rdaw/540_Single_Element_in_a_Sorted_Array.py), [Swift](https://tinyurl.com/wuja3c4/1268_Search_Suggestions_System.swift) |  | Medium | --- |
|34| **[441. Arranging Coins](https://tinyurl.com/yaj6labj)** | [Python](https://tinyurl.com/wu6rdaw/441_Arranging_Coins.py), [Swift](https://tinyurl.com/wuja3c4/441_Arranging_Coins.swift) |  | Easy | --- |
|35| **[154. Find Minimum in Rotated Sorted Array II](https://tinyurl.com/y2tx3mow)** | [Python](https://tinyurl.com/wu6rdaw/154_Find_Minimum_in_Rotated_Sorted_Array_II.py), [Swift](https://tinyurl.com/wuja3c4/154_Find_Minimum_in_Rotated_Sorted_Array_II.swift) | [Art 1](https://tinyurl.com/y5on59nn) | Medium | **VERY IMPORTANT** |


</p>
</details>



### 7. [Binary Tree](https://leetcode.com/explore/learn/card/data-structure-tree/)
[Binary Tree Bootcamp](https://tinyurl.com/ut5oglh)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>
Check this [golden](https://tinyurl.com/ujopecz) post.

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [226. Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/solution/)| [Python](https://tinyurl.com/wu6rdaw/226_Invert_Binary_Tree.py)|
|02| [101. Symmetric Tree](https://leetcode.com/problems/symmetric-tree/)| [Python](https://tinyurl.com/wu6rdaw/101_Symmetric_Tree.py)|
|03| [102. Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/solution/)| [Python](https://tinyurl.com/wu6rdaw/102_Binary_Tree_Level_Order_Traversal.py)|
|04| [107. Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/)| [Python](https://tinyurl.com/wu6rdaw/107_Binary_Tree_Level_Order_Traversal_II.py)|
|05| [103. Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)| [Python](https://tinyurl.com/wu6rdaw/103_Binary_Tree_Zigzag_Level_Order_Traversal.py)|
|06| [104. Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/)| [Python](https://tinyurl.com/wu6rdaw/104_Maximum_Depth_of_Binary_Tree.py)| [Explanation](https://leetcode.com/explore/learn/card/data-structure-tree/17/solve-problems-recursively/534/) |
|07| [100. Same Tree](https://leetcode.com/problems/same-tree/)| [Python](https://tinyurl.com/wu6rdaw/100_Same_Tree.py)| |
|08| [111. Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree/)| [Python](https://tinyurl.com/wu6rdaw/111_Minimum_Depth_of_Binary_Tree.py)| | Easy | --- |
|09| [110. Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/)| [Python](https://tinyurl.com/wu6rdaw/110_Balanced_Binary_Tree.py)| [Video 1](https://www.youtube.com/watch?v=LU4fGD-fgJQ), [Article 1](https://leetcode.com/problems/balanced-binary-tree/discuss/36042/Two-different-definitions-of-balanced-binary-tree-result-in-two-different-judgments), [Article 2](https://leetcode.com/problems/balanced-binary-tree/discuss/35708/VERY-SIMPLE-Python-solutions-(iterative-and-recursive)-both-beat-90) | Easy | --- |
|10| [105. Construct Binary Tree from Preorder and Inorder Traversal](https://tinyurl.com/y4s62xbu)| [Python](https://tinyurl.com/wu6rdaw/105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal.py)| [Art 1](https://tinyurl.com/y3megvpm), [Art 2](https://tinyurl.com/tazaoyz), [Vid 1](https://tinyurl.com/qoqdsqv) | Medium | DFS, Very Important |
|11| [106. Construct Binary Tree from Inorder and Postorder Traversal](https://tinyurl.com/yx78og6g)| [Python](https://tinyurl.com/wu6rdaw/106_Construct_Binary_Tree_from_Inorder_and_Postorder_Traversal.py), [Swift](https://tinyurl.com/wuja3c4/106_Construct_Binary_Tree_from_Inorder_and_Postorder_Traversal.swift) | [Art 1](https://tinyurl.com/vlntqrp) | Medium | DFS, Very Important |
|12| **[889. Construct Binary Tree from Preorder and Postorder Traversal](https://tinyurl.com/y578ty5u)** | [Python](https://tinyurl.com/wu6rdaw/889_Construct_Binary_Tree_from_Preorder_and_Postorder_Traversal.py)| [Vid 1](https://tinyurl.com/r6d4ym5), **[Art 1](https://tinyurl.com/tflqhp9)**, [Art 2](https://tinyurl.com/wkq7qyu) | Medium | 📌 **TODO: Check again. Important** |
|13| **[124. Binary Tree Maximum Path Sum](https://tinyurl.com/yycvxmmy)**| [Python](https://tinyurl.com/wu6rdaw/124_Binary_Tree_Maximum_Path_Sum.py), [Swift](https://tinyurl.com/wuja3c4/124_Binary_Tree_Maximum_Path_Sum.swift) | [Art 1](https://tinyurl.com/uocr9np), [Art 2](https://tinyurl.com/s23sqhe), [Vid 1](https://tinyurl.com/wwe95qx), [AlgoExpert](https://tinyurl.com/vofbonm) | Very Hard | **Very important and tricky** |
|14| **[979. Distribute Coins in Binary Tree](https://leetcode.com/problems/distribute-coins-in-binary-tree/)**| [Python](https://tinyurl.com/wu6rdaw/979_Distribute_Coins_in_Binary_Tree.py)| [Art 1](https://tinyurl.com/rugoa38), [Art 2](https://tinyurl.com/whkdbl4), [Art 3](https://tinyurl.com/s62fws7) | Medium | **Very important. Postorder DFS** |
|15| [116. Populating Next Right Pointers in Each Node](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/)| [Python](https://tinyurl.com/wu6rdaw/116_Populating_Next_Right_Pointers_in_Each_Node.py)| [Art 1](https://tinyurl.com/t6p8kjb), [Art 2](https://tinyurl.com/ujzrhkj), **[Art 3](https://tinyurl.com/unrow77)** | Medium | BFS/DFS, Level order traversal |
|16| [117. Populating Next Right Pointers in Each Node II](https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/)| [Python](https://tinyurl.com/wu6rdaw/117_Populating_Next_Right_Pointers_in_Each_Node_II.py)| [Vid 1](https://tinyurl.com/rfjhzj3), [Vid 2](https://tinyurl.com/ryghj42) | Medium | **Very tricky, check again** |
|17| [199. Binary Tree Right Side View](https://tinyurl.com/y65vxqj2)| [Python](https://tinyurl.com/wu6rdaw/199_Binary_Tree_Right_Side_View.py), [Swift](https://tinyurl.com/wuja3c4/199_Binary_Tree_Right_Side_View.swift) | --- | Medium | --- |
|18| **[863. All Nodes Distance K in Binary Tree](https://tinyurl.com/w5dmj3o)**| [Python](https://tinyurl.com/wu6rdaw/863_All_Nodes_Distance_K_in_Binary_Tree.py)| [Vid 1](https://tinyurl.com/tn4ncqy), [Art 1](https://tinyurl.com/t3ozct3), [Art 2](https://tinyurl.com/rvbhznn) | Medium | A combination of graph and tree. TODO: Check again. Very important |
|19| [301. Remove Invalid Parentheses](https://tinyurl.com/w9lfsgt) | [Python](https://tinyurl.com/wu6rdaw/301_Remove_Invalid_Parentheses.py)| [Vid 1](https://tinyurl.com/rbp6xa7), [Vid 2](https://tinyurl.com/sjk44du), [Art 1](https://tinyurl.com/tcglxfp) | Hard | TODO: Not done, Check again. Very important. BFS and DFS |
|20| [112. Path Sum](https://tinyurl.com/rg6m7ua) | [Python](https://tinyurl.com/wu6rdaw/112_Path_Sum.py)| [Art 1](https://tinyurl.com/t2dggse) | Easy | --- |
|21| [113. Path Sum II](https://tinyurl.com/qm9gc2v) | [Python](https://tinyurl.com/wu6rdaw/113_Path_Sum_II.py)| [Art 1](https://tinyurl.com/rynd6fy), [Art 2](https://tinyurl.com/tn2o75s) | Medium | --- |
|22| [437. Path Sum III](https://tinyurl.com/ug978np) | [Python](https://tinyurl.com/wu6rdaw/437_Path_Sum_III.py)| [Educative.io](https://tinyurl.com/vyhpcu2), [Art 1](https://tinyurl.com/w6yjxaz), **[Art 2](https://tinyurl.com/wkxjmqv)** | Medium | 📌 A good example of Prefix Sum and DFS. Very Important |
|23| [543. Diameter of Binary Tree](https://tinyurl.com/womnj8m) | [Python](https://tinyurl.com/wu6rdaw/543_Diameter_of_Binary_Tree.py), [Swift](https://tinyurl.com/wuja3c4/543_Diameter_of_Binary_Tree.swift.swift) | [Educative.io](https://tinyurl.com/w6rrucg), [Art 1](https://tinyurl.com/vfnvg8q) | Medium | 📌 Important |
|24| **[1110. Delete Nodes And Return Forest](https://tinyurl.com/rg8qomj)** | [Python](https://tinyurl.com/wu6rdaw/1110_Delete_Nodes_And_Return_Forest.py)| [Vid 1](https://tinyurl.com/t9rax3x), [Vid 2](https://tinyurl.com/uw6y3zk), [Art 1](https://tinyurl.com/ujopecz), [Art 2](https://tinyurl.com/tppglsu) | Medium | 📌 **TODO: Check again. Important |
|25| [257. Binary Tree Paths](https://leetcode.com/problems/binary-tree-paths/)| [Python](https://tinyurl.com/wu6rdaw/257_Binary_Tree_Paths.py)| --- | Easy | DFS |
|26| **[1145. Binary Tree Coloring Game](https://tinyurl.com/uukf2nm)**| [Python](https://tinyurl.com/wu6rdaw/1145_Binary_Tree_Coloring_Game.py)| [Art 1](https://tinyurl.com/v4k7jaj), [Art 2](https://tinyurl.com/rvwsjar) | Medium | DFS |
|27| **[298. Binary Tree Longest Consecutive Sequence](https://tinyurl.com/rw2sqxr)**| [Python](https://tinyurl.com/wu6rdaw/298_Binary_Tree_Longest_Consecutive_Sequence.py)| **[Art 1](https://tinyurl.com/wmlq6md)** | Medium | DFS |
|28| **[951. Flip Equivalent Binary Trees](https://tinyurl.com/wj4bqms)**| [Python](https://tinyurl.com/wu6rdaw/951_Flip_Equivalent_Binary_Trees.py)| **[Vid 1](https://tinyurl.com/uw378m8)**, [Art 1](https://tinyurl.com/r5d6jkk) | Medium | DFS |
|29| **[528. Random Pick with Weight](https://tinyurl.com/vf8bruk)**| [Python](https://tinyurl.com/wu6rdaw/528_Random_Pick_with_Weight.py)| **[Vid 1](https://tinyurl.com/usd5r25)**, **[Art 1](https://tinyurl.com/rgwt57q)** | Medium | Very tricky |
|30| **[236. Lowest Common Ancestor of a Binary Tree](https://tinyurl.com/y54e6gco)**| [Python](https://tinyurl.com/wu6rdaw/236_Lowest_Common_Ancestor_of_a_Binary_Tree.py), [Swift](https://tinyurl.com/wuja3c4/236_Lowest_Common_Ancestor_of_a_Binary_Tree.swift) | **[Vid 1](https://tinyurl.com/udf9oa9)**, **[Vid 2](https://tinyurl.com/stknbyu)**, **[Algoexpert.io](https://tinyurl.com/wwz4m5t)**, **[Official](https://tinyurl.com/yx28t8ff)**, **[Art 1](https://tinyurl.com/v86wcky)**, **[Art 2](https://tinyurl.com/tu7jdzq)**, **[Art 3](https://tinyurl.com/tgvyy7p)** | Medium | TODO: Check Again. Very Important |
|31| **[114. Flatten Binary Tree to Linked List](https://tinyurl.com/yyc6ol5w)**| [Python](https://tinyurl.com/wu6rdaw/114_Flatten_Binary_Tree_to_Linked_List.py)| [Art 1](https://tinyurl.com/v5s5axv) | Medium | Classic Prolem |
|32| **[297. Serialize and Deserialize Binary Tree](https://tinyurl.com/ycfugzww)**| [Python](https://tinyurl.com/wu6rdaw/297_Serialize_and_Deserialize_Binary_Tree.py), [Swift](https://tinyurl.com/wuja3c4/297_Serialize_and_Deserialize_Binary_Tree.swift) | [Vid 1](https://tinyurl.com/yx4w25u4) | Hard | Classic Prolem |
|33| **[993. Cousins in Binary Tree](https://tinyurl.com/ybtzjhnb)**| [Python](https://tinyurl.com/wu6rdaw/993_Cousins_in_Binary_Tree.py), [Swift](https://tinyurl.com/wuja3c4/993_Cousins_in_Binary_Tree.swift) |  | Easy(Not so) |  |
|34| **[572. Subtree of Another Tree](https://tinyurl.com/ybeerky9)**| [Python](https://tinyurl.com/wu6rdaw/572_Subtree_of_Another_Tree.py), [Swift](https://tinyurl.com/wuja3c4/572_Subtree_of_Another_Tree.swift) | [Art 1](https://tinyurl.com/y9epsrfa) | Easy(Not so) |  |
|35| **[314. Binary Tree Vertical Order Traversal](https://tinyurl.com/y7qx79no)**| [Python](https://tinyurl.com/wu6rdaw/314_Binary_Tree_Vertical_Order_Traversal.py), [Swift](https://tinyurl.com/wuja3c4/314_Binary_Tree_Vertical_Order_Traversal.swift) | [Vid 1](https://tinyurl.com/ybb6amfl) | Medium |  |
|36| **[987. Vertical Order Traversal of a Binary Tree](https://tinyurl.com/y8vqh9hk)**| [Python](https://tinyurl.com/wu6rdaw/987_Vertical_Order_Traversal_of_a_Binary_Tree.py), [Swift](https://tinyurl.com/wuja3c4/987_Vertical_Order_Traversal_of_a_Binary_Tree.swift) | [Vid 1](https://tinyurl.com/y8byrezh), [Art 1](https://tinyurl.com/yajsqrpp), [Art 2](https://tinyurl.com/yadjj6sy) | Medium |  |
|37| **[958. Check Completeness of a Binary Tree](https://tinyurl.com/yd6dsk88)**| [Python](https://tinyurl.com/wu6rdaw/958_Check_Completeness_of_a_Binary_Tree.py), [Swift](https://tinyurl.com/wuja3c4/958_Check_Completeness_of_a_Binary_Tree.swift) | [Art 1](https://tinyurl.com/y729zfol) | Medium |  |
|38| **[865. Smallest Subtree with all the Deepest Nodes](https://tinyurl.com/y8cbxe4f)**| [Python](https://tinyurl.com/wu6rdaw/865_Smallest_Subtree_with_all_the_Deepest_Nodes.py), [Swift](https://tinyurl.com/wuja3c4/865_Smallest_Subtree_with_all_the_Deepest_Nodes.swift) | [Art 1](https://tinyurl.com/y9vq89jq), [Art 2](https://tinyurl.com/ydhfjr8t), [Art 3](https://tinyurl.com/y8z5p8u2), [Art 4](https://tinyurl.com/y8jm985p) | Medium | Vary ambigious question |
|39| [1315. Sum of Nodes with Even-Valued Grandparent](https://tinyurl.com/y72q6hfn) | [Python](https://tinyurl.com/wu6rdaw/1315_Sum_of_Nodes_with_Even_Valued_Grandparent.py), [Swift](https://tinyurl.com/wuja3c4/1315_Sum_of_Nodes_with_Even_Valued_Grandparent.swift) | -- | Medium | -- |
|40| [129. Sum Root to Leaf Numbers](https://tinyurl.com/yaxakdfs) | [Python](https://tinyurl.com/wu6rdaw/129_Sum_Root_to_Leaf_Numbers.py), [Swift](https://tinyurl.com/wuja3c4/129_Sum_Root_to_Leaf_Numbers.swift) | -- | Medium | -- |
|41| [938. Range Sum of BST](https://tinyurl.com/r43zu3p) | [Python](https://tinyurl.com/wu6rdaw/938_Range_Sum_of_BST.py), [Swift](https://tinyurl.com/wuja3c4/938_Range_Sum_of_BST.swift) | -- | Medium | -- |
|42| [1305. All Elements in Two Binary Search Trees](https://tinyurl.com/undhmra) | [Python](https://tinyurl.com/wu6rdaw/1305_All_Elements_in_Two_Binary_Search_Trees.py), [Swift](https://tinyurl.com/wuja3c4/1305_All_Elements_in_Two_Binary_Search_Trees.swift) | -- | Medium | -- |
|43| [536. Construct Binary Tree from String](https://tinyurl.com/yyl5vuh7) | [Python](https://tinyurl.com/wu6rdaw/536_Construct_Binary_Tree_from_String.py), [Swift](https://tinyurl.com/wuja3c4/536_Construct_Binary_Tree_from_String.swift) | -- | Medium | -- |
|44| [652. Find Duplicate Subtrees](https://tinyurl.com/y5zt6392) | [Python](https://tinyurl.com/wu6rdaw/652_Find_Duplicate_Subtrees.py), [Swift](https://tinyurl.com/wuja3c4/652_Find_Duplicate_Subtrees.swift) | -- | Medium | -- |
|45| [366. Find Leaves of Binary Tree](https://tinyurl.com/yjaqjjyc) | [Swift](https://tinyurl.com/wuja3c4/366_Find_Leaves_of_Binary_Tree.swift) | -- | Medium | -- |

</p>
</details>



### 8. [Binary Search Tree](https://leetcode.com/explore/learn/card/introduction-to-data-structure-binary-search-tree/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [701. Insert into a Binary Search Tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/)| [Python](https://tinyurl.com/wu6rdaw/701_Insert_into_a_Binary_Search_Tree.py)| --- | Medium | Fundamentals |
|02| [700. Search in a Binary Search Tree](https://leetcode.com/problems/search-in-a-binary-search-tree/)| [Python](https://tinyurl.com/wu6rdaw/700_Search_in_a_Binary_Search_Tree.py)| --- | Easy | Fundamentals |
|03| [270. Closest Binary Search Tree Value](https://leetcode.com/problems/closest-binary-search-tree-value/)| [Python](https://tinyurl.com/wu6rdaw/270_Closest_Binary_Search_Tree_Value.py)| --- | Easy | Fundamentals |
|04| [450. Delete Node in a BST](https://leetcode.com/problems/delete-node-in-a-bst/solution/)| [Python](https://tinyurl.com/wu6rdaw/450_Delete_Node_in_a_BST.py)| --- | Medium | Fundamentals |
|05| [98. Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/solution/)| [Python](https://tinyurl.com/wu6rdaw/98_Validate_Binary_Search_Tree.py)| --- | Medium | Fundamentals |
|06| [94. Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/)| [Python](https://tinyurl.com/wu6rdaw/94_Binary_Tree_Inorder_Traversal.py), [Swift](https://tinyurl.com/wuja3c4/94_Binary_Tree_Inorder_Traversal.swift)| --- | Medium | Fundamentals |
|07| [144. Binary Tree Preorder Traversal](https://leetcode.com/problems/binary-tree-preorder-traversal/)| [Python](https://tinyurl.com/wu6rdaw/144_Binary_Tree_Preorder_Traversal.py)| --- | Medium | Fundamentals |
|08| [145. Binary Tree Postorder Traversal](https://leetcode.com/problems/binary-tree-postorder-traversal/)| [Python](https://tinyurl.com/wu6rdaw/145_Binary_Tree_Postorder_Traversal.py)| --- | Hard | Fundamentals |
|09| [108. Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/)| [Python](https://tinyurl.com/wu6rdaw/108_Convert_Sorted_Array_to_Binary_Search_Tree.py)| --- | Easy | Fundamentals |
|10| [109. Convert Sorted List to Binary Search Tree](https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/)| [Python](https://tinyurl.com/wu6rdaw/109_Convert_Sorted_List_to_Binary_Search_Tree.py)| --- | Medium | Classic problem. Very important |
|11| **[729. My Calendar I](https://tinyurl.com/r3ew2lb)** | [Python](https://tinyurl.com/wu6rdaw/729_My_Calendar_I.py), [Swift](https://tinyurl.com/wuja3c4/729_My_Calendar_I.swift)| [Art 1](https://tinyurl.com/tbd2z7u), [Art 2](https://tinyurl.com/t35fp3e) | Medium | Use self balancing BST for O(nlogn) solution. **Very important** |
|12| **[449. Serialize and Deserialize BST](https://tinyurl.com/rx9rn3l)** | [Python](https://tinyurl.com/wu6rdaw/449_Serialize_and_Deserialize_BST.py), [Swift](https://tinyurl.com/wuja3c4/449_Serialize_and_Deserialize_BST.swift)| [Art 1](https://tinyurl.com/t6e2b97) | Medium | --- |
|13| **[1008. Construct Binary Search Tree from Preorder Traversal](https://tinyurl.com/y6less2m)** | [Python](https://tinyurl.com/wu6rdaw/1008_Construct_Binary_Search_Tree_from_Preorder_Traversal.py), [Swift](https://tinyurl.com/wuja3c4/1008_Construct_Binary_Search_Tree_from_Preorder_Traversal.swift)| [Art 1](https://tinyurl.com/y9mondek), [Art 2](https://tinyurl.com/y8byt732), [Art 3](https://tinyurl.com/yaq7w2jt), [Art 4](https://tinyurl.com/ybwtzpzo) | Medium | --- |
|14| **[653. Two Sum IV - Input is a BST](https://tinyurl.com/ydzdnawg)** | [Python](https://tinyurl.com/wu6rdaw/653_Two_Sum_IV_Input_is_a_BST.py), [Swift](https://tinyurl.com/wuja3c4/653_Two_Sum_IV_Input_is_a_BST.swift)| - | Easy | --- |
|15| **[99. Recover Binary Search Tree](https://tinyurl.com/y9zxw8aj)** | [Python](https://tinyurl.com/wu6rdaw/99_Recover_Binary_Search_Tree.py), [Swift](https://tinyurl.com/wuja3c4/99_Recover_Binary_Search_Tree.swift)| - | Hard | **Very important, check again** |
|16| [230. Kth Smallest Element in a BST](https://tinyurl.com/y8uku68q) | [Python](https://tinyurl.com/wu6rdaw/230_Kth_Smallest_Element_in_a_BST.py), [Swift](https://tinyurl.com/wuja3c4/230_Kth_Smallest_Element_in_a_BST.swift)| - | Medium | Easy peasy |

</p>
</details>


### 9. [N-Ary Tree](https://leetcode.com/explore/learn/card/n-ary-tree/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [589. N-ary Tree Preorder Traversal](https://leetcode.com/problems/n-ary-tree-preorder-traversal/)| [Python](https://tinyurl.com/wu6rdaw/589_N-ary_Tree_Preorder_Traversal.py)|
|02| [590. N-ary Tree Postorder Traversal](https://leetcode.com/problems/n-ary-tree-postorder-traversal/)| [Python](https://tinyurl.com/wu6rdaw/590_N-ary_Tree_Postorder_Traversal.py)|
|03| [429. N-ary Tree Level Order Traversal](https://leetcode.com/problems/n-ary-tree-level-order-traversal/)| [Python](https://tinyurl.com/wu6rdaw/429_N-ary_Tree_Level_Order_Traversal.py)|
|04| [559. Maximum Depth of N-ary Tree](https://leetcode.com/problems/maximum-depth-of-n-ary-tree/)| [Python](https://tinyurl.com/wu6rdaw/559_Maximum_Depth_of_N-ary_Tree.py)|
|05| [431. Encode N-ary Tree to Binary Tree](https://leetcode.com/problems/encode-n-ary-tree-to-binary-tree/submissions/)| [Python](https://tinyurl.com/wu6rdaw/431_Encode_N-ary_Tree_to_Binary_Tree.py)| [Explanation](https://leetcode.com/explore/learn/card/n-ary-tree/131/recursion/922/) |
|06| **[428. Serialize and Deserialize N-ary Tree](https://leetcode.com/problems/serialize-and-deserialize-n-ary-tree/)** | [Python](https://tinyurl.com/wu6rdaw/428_Serialize_and_Deserialize_N-ary_Tree.py)| [Art 1](https://tinyurl.com/tgg874u), **[Official](https://tinyurl.com/sxds3zk)** | Hard | Very important |

</p>
</details>



### 10. Tree
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| **[315. Count of Smaller Numbers After Self](https://leetcode.com/problems/count-of-smaller-numbers-after-self/)**| [Python](https://tinyurl.com/wu6rdaw/315_Count_of_Smaller_Numbers_After_Self.py)| [Article 1](https://leetcode.com/problems/count-of-smaller-numbers-after-self/discuss/76657/3-ways-(Segment-Tree-Binary-Indexed-Tree-Binary-Search-Tree)-clean-python-code), [Article 2](https://medium.com/@timtim305/leetcode-315-count-of-smaller-numbers-after-self-be529cdfe148), [Vid 1](https://www.youtube.com/watch?v=CWDQJGaN1gY), [Vid 2](https://www.youtube.com/watch?v=ZBHKZF5w4YU) | Hard (Very) |📌 **Very hard and important. First learn [BIT](https://www.youtube.com/watch?v=CWDQJGaN1gY), [ST](https://www.youtube.com/watch?v=ZBHKZF5w4YU), [AVL-Tree](https://www.educative.io/courses/data-structures-in-python-an-interview-refresher/JYlwQZmN7V9) and [Red-Black Tree](https://www.educative.io/courses/data-structures-in-python-an-interview-refresher/YQy7Zlz1mEO) then try again**|

</p>
</details>



### 11. [Tries](https://leetcode.com/explore/learn/card/trie/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [208. Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)| [Python](https://tinyurl.com/wu6rdaw/208_Implement_Trie_(Prefix_Tree).py)|
|02| [211. Add and Search Word. Data structure design](https://leetcode.com/problems/add-and-search-word-data-structure-design/)| [Python](https://tinyurl.com/wu6rdaw/211_Add_and_Search_Word_Data_structure_design.py)| [Video 01](https://www.youtube.com/watch?v=qi2ohSEyyDw), [Video 02](https://www.youtube.com/watch?v=neb_2UK5Kuo&t=13s)|
|03| [642. Design Search Autocomplete System](https://leetcode.com/problems/design-search-autocomplete-system/)| [Python](https://tinyurl.com/wu6rdaw/642_Design_Search_Autocomplete_System.py)| [Article 01](https://leetcode.com/problems/design-search-autocomplete-system/discuss/105386/Python-Clean-Solution-Using-Trie), [Video 01](https://www.youtube.com/watch?v=us0qySiUsGU)| Hard | --- |
|04| [472. Concatenated Words](https://tinyurl.com/y9cv6dk5)| [Python](https://tinyurl.com/wu6rdaw/472_Concatenated_Words.py)| [Art 01](https://tinyurl.com/ycjm6fuo), [Art 02](https://tinyurl.com/ybvl3kbv)| Hard | Very important |
|05| **[588. Design In-Memory File System](https://tinyurl.com/ya238cp4)** | [Python](https://tinyurl.com/wu6rdaw/588_Design_In_Memory_File_System.py)| --- | Hard | --- |
|06| **[212. Word Search II](https://tinyurl.com/y8vcw472)** | [Python](https://tinyurl.com/wu6rdaw/212_Word_Search_II.py), [Swift](https://tinyurl.com/wuja3c4/212_Word_Search_II.swift) | [Art 1](https://tinyurl.com/y7td7eag) | Hard | --- |
|07| **[1233. Remove Sub-Folders from the Filesystem](https://tinyurl.com/ybltz57l)** | [Python](https://tinyurl.com/wu6rdaw/1233_Remove_Sub_Folders_from_the_Filesystem.py), [Swift](https://tinyurl.com/wuja3c4/1233_Remove_Sub_Folders_from_the_Filesystem.swift) | [Art 1](https://tinyurl.com/ybae3tnm) | Medium | Didn't think of it as a trie. Good problem |

</p>
</details>



### 12. Graphs 
BFS, DFS, Dijkstra, Floyd–Warshall, Bellman-Ford, Kruskal, Prim's, Minimum Spanning Tree, Topological Ordering, Union Find.

**Follow [this](https://tinyurl.com/tcpmneh) golden rule to approach any graph problem.**

<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>


| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| **[207. Course Schedule](https://tinyurl.com/y2n8mekw)** | [Python](https://tinyurl.com/wu6rdaw/207_Course_Schedule.py)| **[educative.io](https://tinyurl.com/s9c4rlh)** | Medium | 📌 Very Important. Check again. BFS, Topological Sort |
|02| **[210. Course Schedule II](https://tinyurl.com/t7e74n2)** | [Python](https://tinyurl.com/wu6rdaw/210_Course_Schedule_II.py)| **[educative.io](https://tinyurl.com/wz2a7f2)** | Medium | 📌 Very Important. Check again. BFS, Topological Sort |
|03| **[269. Alien Dictionary](https://tinyurl.com/y6cp4783)** | [Python](https://tinyurl.com/wu6rdaw/269_Alien_Dictionary.py), [Swift](https://tinyurl.com/wuja3c4/269_Alien_Dictionary.swift) | **[educative.io](https://tinyurl.com/v9o2bq7)**, [Vid 1](https://tinyurl.com/uyq3rsr), [Vid 2](https://tinyurl.com/t2okooj), [Vid 3](https://tinyurl.com/s2mht66) | Hard | 📌 Very Important. Check again. BFS, Topological Sort |
|04| **[444. Sequence Reconstruction](https://tinyurl.com/v4zalus)** | [Python](https://tinyurl.com/wu6rdaw/444_Sequence_Reconstruction.py)| **[educative.io](https://tinyurl.com/tp6dxjz)** | Medium/Hard | 📌 Check again. BFS, Topological Sort |
|05| **[310. Minimum Height Trees](https://tinyurl.com/u8ej2cp)** | [Python](https://tinyurl.com/wu6rdaw/310_Minimum_Height_Trees.py)| **[educative.io](https://tinyurl.com/t83ley2)** | Hard | 📌 TODO: Check again, very hard, didn't get the intuition. BFS, Topological Sort |
|06| **[329. Longest Increasing Path in a Matrix](https://tinyurl.com/vmb7btv)** | [Python](https://tinyurl.com/wu6rdaw/329_Longest_Increasing_Path_in_a_Matrix.py)| [Official](https://tinyurl.com/sddke8e), [Art 1](https://tinyurl.com/s2t4dhh), [Art 2](https://tinyurl.com/ra8s2hz) | Hard | ** 📌 TODO: Not Done, very hard and important. DP, Topological Sort ** |
|07| **[1203. Sort Items by Groups Respecting Dependencies](https://tinyurl.com/vaz5vrk)** | [Python](https://tinyurl.com/wu6rdaw/1203_Sort_Items_by_Groups_Respecting_Dependencies.py)|  | Hard | 📌 TODO: Not Done, very hard, didn't get the intuition. BFS, Topological Sort |
|08| **[695. Max Area of Island](https://leetcode.com/problems/max-area-of-island/)** | [Python](https://tinyurl.com/wu6rdaw/695_Max_Area_of_Island.py)| --- | Medium | DFS |
|09| **[200. Number of Islands](https://leetcode.com/problems/number-of-islands/)** | [Python](https://tinyurl.com/wu6rdaw/200_Number_of_Islands.py)| [Algoexpert.io - DFS](https://tinyurl.com/wux27jk), **[Union Find](https://tinyurl.com/tgzexdk)**, [Art 1](https://tinyurl.com/wgum82w) | Medium | DFS + DFS, Union Find |
|10| **[305. Number of Islands II](https://tinyurl.com/qpca3gz)** | [Python](https://tinyurl.com/wu6rdaw/305_Number_of_Islands_II.py)|  **[Union Find](https://tinyurl.com/tgzexdk)**, [Art 0](https://tinyurl.com/vla7uya), [Art 1](https://tinyurl.com/v3sjgb2), [Art 2](https://tinyurl.com/wshbuf9), [Art 3](https://tinyurl.com/qohtl3m), [Art 4](https://tinyurl.com/tb5yjrz), [Art 5](https://tinyurl.com/tzwzzqy) | Hard | Union Find |
|11| **[399. Evaluate Division](https://tinyurl.com/sjl9mqh)** | [Python](https://tinyurl.com/wu6rdaw/399_Evaluate_Division.py)|  **[Art 0](https://tinyurl.com/v4mlv9o)**, **[Art 1](https://tinyurl.com/vn8g56l)**, **[Art 2](https://tinyurl.com/tcpmneh)**, [Art 3](https://tinyurl.com/rvzopd4), [Art 4](https://tinyurl.com/tcuwpnn), [Art 5](https://tinyurl.com/rxqn7gb) | Medium | TODO: Solve it using Union Find |
|12| [841. Keys and Rooms](https://tinyurl.com/wphmoou) | [Python](https://tinyurl.com/wu6rdaw/841_Keys_and_Rooms.py)|  **[codinginterviewclass.com](https://tinyurl.com/s6ygbtj)**, [Art 1](https://tinyurl.com/s8retco), [Art 2](https://tinyurl.com/w5m9e5n) | Medium | BFS, DFS |
|13| **[490. The Maze](https://tinyurl.com/srh3vzz)** | [Python](https://tinyurl.com/wu6rdaw/490_The_Maze.py)|  **[codinginterviewclass.com](https://tinyurl.com/qo5rrt4)**, [Vid 1](https://tinyurl.com/s9wse7o), **[Art 1](https://tinyurl.com/ueg56of)**, **[Art 2](https://tinyurl.com/wyn5yrl)**, [Art 3](https://tinyurl.com/t95pdp4), [Art 4](https://tinyurl.com/wxvd26q), [Art 5](https://tinyurl.com/vmjgh6v) | Medium | **Modified BFS and DFS** |
|14| **[130. Surrounded Regions](https://tinyurl.com/tnmbzep)** | [Python](https://tinyurl.com/wu6rdaw/130_Surrounded_Regions.py)|  **[codinginterviewclass.com](https://tinyurl.com/uclclqk)**, **[Art 1](https://tinyurl.com/yx859xh6)**, **[Art 2](https://tinyurl.com/wbnnm8n)** | Medium | **TODO: Solve it using Union Find. Modified BFS and DFS** |
|15| **[127. Word Ladder](https://tinyurl.com/y99azp8z)** | [Python](https://tinyurl.com/wu6rdaw/127_Word_Ladder.py)|  **[backtobackswe.com](https://tinyurl.com/y9thba6e)**, **[Official](https://tinyurl.com/y99azp8z)**, **[Art 1](https://tinyurl.com/ya3vr264)** | Medium | **Very important and tricky. Modified BFS. Shortest Path finding** |
|16| **[126. Word Ladder II](https://tinyurl.com/jubpmll)** | [Python](https://tinyurl.com/wu6rdaw/126_Word_Ladder_II.py)|  **[backtobackswe.com](https://tinyurl.com/y9thba6e)**, **[Official](https://tinyurl.com/y99azp8z)**, **[Vid 1](https://tinyurl.com/ws465le)**, **[Vid 2](https://tinyurl.com/y7apdbwu)**, **[Art 1 - Must](https://tinyurl.com/y89mjm4c)** | Hard | **TODO: Not Done. Extremely tricky. Modified BFS. Learned [Bidirectional Search](https://tinyurl.com/vx3oqbf)** |
|17| **[785. Is Graph Bipartite?](https://tinyurl.com/wvwqw2j)** | [Python](https://tinyurl.com/wu6rdaw/785_Is_Graph_Bipartite.py), [Swift](https://tinyurl.com/wuja3c4/785_Is_Graph_Bipartite.swift)|  **[backtobackswe.com](https://tinyurl.com/y46j3se6)**, **[Official](https://tinyurl.com/rynbqly)** | Medium | **Important, Learned new things. Undirected Graph** |
|18| **[133. Clone Graph](https://tinyurl.com/y42nwqz8)** | [Python](https://tinyurl.com/wu6rdaw/133_Clone_Graph.py), [Swift](https://tinyurl.com/wuja3c4/133_Clone_Graph.swift) |  **[backtobackswe.com](https://tinyurl.com/y8tluhov)**, **[Official](https://tinyurl.com/usxjk49)** | Medium | **Important, Learned new things. Undirected Graph** |
|19| **[332. Reconstruct Itinerary](https://tinyurl.com/gn2mv3k)** | [Python](https://tinyurl.com/wu6rdaw/332_Reconstruct_Itinerary.py)|  [Vid 1](https://tinyurl.com/w47evd9), [Vid 2](https://tinyurl.com/uvop34p), [Art 1](https://tinyurl.com/tsy24pl), [Art 2](https://tinyurl.com/srazxo3), [Art 3](https://tinyurl.com/wluob5j), **[Art 4](https://tinyurl.com/y4s9crf6)** | Medium | **Important, Learned new things. Directed Graph. Eulerian path and top Sort** |
|20| **[1153. String Transforms Into Another String](https://tinyurl.com/sv9hpo8)** | [Python](https://tinyurl.com/wu6rdaw/1153_String_Transforms_Into_Another_String.py)|  **[Vid 1](https://tinyurl.com/ty2ga7d)**, [Vid 2](https://tinyurl.com/vxr9zxp), [Art 1](https://tinyurl.com/rklzgkk), [Art 2](https://tinyurl.com/seb6vqq), [Art 3](https://tinyurl.com/vfjwn5h), [Art 4](https://tinyurl.com/w62hpq2), [Art 5](https://tinyurl.com/tteucry), [Art 6](https://tinyurl.com/uvctnvz) | Extremely Hard | **TODO: Check again. Very Important and tricky, Learned new things. Digraph.** |
|21| **[743. Network Delay Time](https://tinyurl.com/yd88jryl)** | [Python](https://tinyurl.com/wu6rdaw/743_Network_Delay_Time.py)|  **[Official](https://tinyurl.com/rmcr2xk)**, **[Dijkstra 1](https://tinyurl.com/r8omw8l)**, **[Dijkstra 2](https://tinyurl.com/sscslz7)**, [Vid 1](https://tinyurl.com/vucexbc), **[Art 1](https://tinyurl.com/vbetlaq)**, [Art 2](https://tinyurl.com/yxdzrw3k), **[Art 3](https://tinyurl.com/whnbv4o)**, **[Art 4](https://tinyurl.com/roq3udj)** | Medium | **TODO: Check again. Very Important. Learned (Dijkstra, Bellman, Floyed).  Check references section** |
|22| **[261. Graph Valid Tree](https://tinyurl.com/uw9ndt6)** | [Python](https://tinyurl.com/wu6rdaw/261_Graph_Valid_Tree.py)|  [Art 1](https://tinyurl.com/yx6ehrfu), **[Art 2](https://tinyurl.com/tlw6vda)**, **[Art 3](https://tinyurl.com/yhs85tj3)**, [Art 4](https://tinyurl.com/ydkfcc5x) | Medium | Important. BFS, DFS and [Union Find](https://tinyurl.com/yhs85tj3) |
|23| **[1168. Optimize Water Distribution in a Village](https://tinyurl.com/ygh8sahd)** | [Python](https://tinyurl.com/wu6rdaw/1168_Optimize_Water_Distribution_in_a_Village.py)|  **[Art 1](https://tinyurl.com/yjwwoxv3)**, **[Art 2](https://tinyurl.com/yhc3a7yr)**, **[Art 3](https://tinyurl.com/yf7fjz4v)**, [Art 4](https://tinyurl.com/yh7n9wps) | Hard | TODO: Check AGain. Prim's and Kruskal's algorithm. Important. |
|24| **[1197. Minimum Knight Moves](https://tinyurl.com/svox8jw)** | [Python](https://tinyurl.com/wu6rdaw/1197_Minimum_Knight_Moves.py)|  **[Art 1](https://tinyurl.com/wed5c6s)** | Medium | TODO: Check AGain. Important. |
|25| **[1066. Campus Bikes II](https://leetcode.com/problems/campus-bikes-ii/)** | [Python](https://tinyurl.com/wu6rdaw/1066_Campus_Bikes_II.py)| [Vid 1](https://tinyurl.com/qq6obzv), **[Art 1](https://tinyurl.com/r4wtfbo)** | Medium |📌 **TODO: CHECK Dijkstra approach again. Backtracking solution is getting TLE. Solve it and implement it with DP also. Very important** |
|26| **[752. Open the Lock](https://tinyurl.com/yxpwjn7r)** | [Python](https://tinyurl.com/wu6rdaw/752_Open_the_Lock.py)| **[Art 1](https://tinyurl.com/s3oskv8)**, **[Art 2](https://tinyurl.com/rsr4tz9)** | Medium |📌 **TODO: CHECK again. Very important  and interesting problem. Loved it** |
|27| **[489. Robot Room Cleaner](https://tinyurl.com/yxpwjn7r)** | [Python](https://tinyurl.com/wu6rdaw/489_Robot_Room_Cleaner.py), [Swift](https://tinyurl.com/wuja3c4/489_Robot_Room_Cleaner.swift) | **[Vid 1](https://tinyurl.com/vahalvm)**, **[Vid 2](https://tinyurl.com/qpumkro)**, **[Art 1](https://tinyurl.com/rnu8679)** | Hard |📌 **TODO: CHECK again. Very important  and interesting problem. I fucking loved it** |
|28| **[1136. Parallel Courses](https://tinyurl.com/yxpwjn7r)** | [Python](https://tinyurl.com/wu6rdaw/11136_Parallel_Courses.py), [Swift](https://tinyurl.com/wuja3c4/11136_Parallel_Courses.swift) | --- | Hard |📌 Topological sort. |
|29| **[947. Most Stones Removed with Same Row or Column](https://tinyurl.com/rrm6w2a)** | [Python](https://tinyurl.com/wu6rdaw/947_Most_Stones_Removed_with_Same_Row_or_Column.py), [Swift](https://tinyurl.com/wuja3c4/947_Most_Stones_Removed_with_Same_Row_or_Column.swift) | [Vid 1](https://tinyurl.com/sc2g6eg), [Art 1](https://tinyurl.com/sxyzxkr), [Vid 2](https://tinyurl.com/wocnrhn), [Art 2](https://tinyurl.com/sogsj74), [Art 3](https://tinyurl.com/w4pk463) | Medium |📌 DFS and Union FInd |
|30| [1042. Flower Planting With No Adjacent](https://tinyurl.com/unwlzyy) | [Python](https://tinyurl.com/wu6rdaw/1042_Flower_Planting_With_No_Adjacent.py), [Swift](https://tinyurl.com/wuja3c4/1042_Flower_Planting_With_No_Adjacent.swift) | --- | Easy |📌 Could be done using DFS, BFS |
|31| **[994_Rotting_Oranges](https://tinyurl.com/yavrnvu5)** | [Python](https://tinyurl.com/wu6rdaw/994_Rotting_Oranges.py), [Swift](https://tinyurl.com/wuja3c4/994_Rotting_Oranges.swift) | --- | Medium |📌 BFS |
|32| **[909. Snakes and Ladders](https://tinyurl.com/yazkm38f)** | [Python](https://tinyurl.com/wu6rdaw/909_Snakes_and_Ladders.py), [Swift](https://tinyurl.com/wuja3c4/909_Snakes_and_Ladders.swift) | [Art 1](https://tinyurl.com/ya45spcc), [Art 2](https://tinyurl.com/ycafdfr4), [Art 3](https://tinyurl.com/yc3hdaw9), [Vid 1](https://tinyurl.com/yc3hdaw9), [Vid 2](https://tinyurl.com/y99hrfvk), | Medium |📌 BFS. Check again |
|33| **[1192. Critical Connections in a Network](https://tinyurl.com/y6u2p7qw)** | [Python](https://tinyurl.com/wu6rdaw/1192_Critical_Connections_in_a_Network.py), [Swift](https://tinyurl.com/wuja3c4/1192_Critical_Connections_in_a_Network.swift) | [Art 1](https://tinyurl.com/yc2tzb4k), [Art 2](https://tinyurl.com/ycjd3rrr), [Art 3](https://tinyurl.com/ybj5nux8), [Art 4](https://tinyurl.com/y9wz5w8o), [Vid 1](https://tinyurl.com/y76cux54), [Vid 2](https://tinyurl.com/ybmgmv5l), [Vid 3](https://tinyurl.com/y7sa5oou) | Hard |📌 **Important, Learned new things.Tarjans SCCs algorithm. Check again** |
|34| **[694. Number of Distinct Islands](https://tinyurl.com/ybf8cedn)** | [Python](https://tinyurl.com/wu6rdaw/694_Number_of_Distinct_Islands.py), [Swift](https://tinyurl.com/wuja3c4/694_Number_of_Distinct_Islands.swift) | [Art 1](https://tinyurl.com/y7rapyk6), [Art 2](https://tinyurl.com/yde8dqbb) | Medium |📌  |
|35| [997. Find the Town Judge](https://tinyurl.com/y7875kls) | [Python](https://tinyurl.com/wu6rdaw/997_Find_the_Town_Judge.py), [Swift](https://tinyurl.com/wuja3c4/997_Find_the_Town_Judge.swift) | --- | Easy |📌  |
|36| [733. Flood Fill](https://tinyurl.com/y9pecfd8) | [Python](https://tinyurl.com/wu6rdaw/733_Flood_Fill.py), [Swift](https://tinyurl.com/wuja3c4/733_Flood_Fill.swift) | --- | Easy |📌  |
|37| [339. Nested List Weight Sum](https://tinyurl.com/y53lt8ad) | [Python](https://tinyurl.com/wu6rdaw/339_Nested_List_Weight_Sum.py), [Swift](https://tinyurl.com/wuja3c4/339_Nested_List_Weight_Sum.swift) | --- | Easy |📌  |
|38| [1026. Maximum Difference Between Node and Ancestor](https://tinyurl.com/y53lt8ad) | [Python](https://tinyurl.com/wu6rdaw/1026_Maximum_Difference_Between_Node_and_Ancestor.py), [Swift](https://tinyurl.com/wuja3c4/1026_Maximum_Difference_Between_Node_and_Ancestor.swift) | --- | Medium |📌  |
|39| [721. Accounts Merge](https://tinyurl.com/yaxzzqf9) | [Python](https://tinyurl.com/wu6rdaw/721_Accounts_Merge.py), [Swift](https://tinyurl.com/wuja3c4/721_Accounts_Merge.swift) | --- | Medium |📌 Loved it and hated it. Learned a lot. Very insightfull and tricky, deceiving problem. Be very carefull with your choice |
|40| [1123. Lowest Common Ancestor of Deepest Leaves](https://tinyurl.com/ybn3fg7l) | [Python](https://tinyurl.com/wu6rdaw/1123_Lowest_Common_Ancestor_of_Deepest_Leaves.py), [Swift](https://tinyurl.com/wuja3c4/1123_Lowest_Common_Ancestor_of_Deepest_Leaves.swift) | --- | Medium |📌 Loved it and hated it. |
|41| [419. Battleships in a Board](https://tinyurl.com/y9ag7c2o) | [Python](https://tinyurl.com/wu6rdaw/419_Battleships_in_a_Board.py), [Swift](https://tinyurl.com/wuja3c4/419_Battleships_in_a_Board.swift) | --- | Medium |📌 Union FInd and or DFS. |
|42| [934. Shortest Bridge](https://tinyurl.com/yd2m8jn9) | [Python](https://tinyurl.com/wu6rdaw/934_Shortest_Bridge.py), [Swift](https://tinyurl.com/wuja3c4/934_Shortest_Bridge.swift) | [Art 1](https://tinyurl.com/ybwcd7fm) | Medium |📌 DFS and BFS |
|43| [317. Shortest Distance from All Buildings](https://tinyurl.com/ybx7nqfu) | [Python](https://tinyurl.com/wu6rdaw/317_Shortest_Distance_from_All_Buildings.py), [Swift](https://tinyurl.com/wuja3c4/317_Shortest_Distance_from_All_Buildings.swift) | [Art 1](https://tinyurl.com/y6wxhuj8) | Hard |📌 BFS, a must do problem |
|44| [93. Restore IP Addresses](https://tinyurl.com/y554o9ej) | [Python](https://tinyurl.com/wu6rdaw/93_Restore_IP_Addresses.py), [Swift](https://tinyurl.com/wuja3c4/93_Restore_IP_Addresses.swift) | --- | Medium |📌 A must do problem. Backtracking |
|45| [1424. Diagonal Traverse II](https://tinyurl.com/y3n5k6e9) | [Python](https://tinyurl.com/wu6rdaw/1424_Diagonal_Traverse_II.py), [Swift](https://tinyurl.com/wuja3c4/1424_Diagonal_Traverse_II.swift) | --- | Medium |📌 Very interesting one. |
|46| [364_Nested_List_Weight_Sum_II](https://tinyurl.com/w5d2ff4) | [Python](https://tinyurl.com/wu6rdaw/364_Nested_List_Weight_Sum_II.py), [Swift](https://tinyurl.com/wuja3c4/364_Nested_List_Weight_Sum_II.swift) | --- | Medium |📌 Hidden DFS |
|47| [1245. Tree Diameter](https://tinyurl.com/yxq4uykv) | [Python](https://tinyurl.com/wu6rdaw/1245_Tree_Diameter.py), [Swift](https://tinyurl.com/wuja3c4/1245_Tree_Diameter.swift) | [Art 1](https://www.geeksforgeeks.org/longest-path-undirected-tree/) | Medium |📌 Learned, 2 BFS. Important and interesting |
|48| [1376. Time Needed to Inform All Employees](https://tinyurl.com/y3e5bb22) | [Python](https://tinyurl.com/wu6rdaw/1376_Time_Needed_to_Inform_All_Employees.py), [Swift](https://tinyurl.com/wuja3c4/1376_Time_Needed_to_Inform_All_Employees.swift) | [Art 1](https://tinyurl.com/y2lw6s4j) | Medium |📌 BFS, DFS |
|49| [286. Walls and Gates](https://tinyurl.com/y3ollzsl) | [Python](https://tinyurl.com/wu6rdaw/286_Walls_and_Gates.py), [Swift](https://tinyurl.com/wuja3c4/286_Walls_and_Gates.swift) | --- | Medium |📌 BFS, DFS |
|50| [1138. Alphabet Board Path](https://tinyurl.com/y2xk6r98) | [Python](https://tinyurl.com/wu6rdaw/1138_Alphabet_Board_Path.py), [Swift](https://tinyurl.com/wuja3c4/1138_Alphabet_Board_Path.swift) | --- | Medium |📌 BFS |
|51| [690. Employee Importance](https://tinyurl.com/yyweuk43) | [Python](https://tinyurl.com/wu6rdaw/690_Employee_Importance.py), [Swift](https://tinyurl.com/wuja3c4/690_Employee_Importance.swift) | --- | Easy |📌 BFS |
|52| **[1631. Path With Minimum Effort](https://tinyurl.com/y3nh25d9)** | [Python](https://tinyurl.com/wu6rdaw/1631_Path_With_Minimum_Effort.py), [Swift](https://tinyurl.com/wuja3c4/1631_Path_With_Minimum_Effort.swift) | --- | Medium |📌 BFS, DFS, Binary search |
|53| **[547. Friend Circles](https://tinyurl.com/r39pov7)** | [Python](https://tinyurl.com/wu6rdaw/547_Friend_Circles.py), [Swift](https://tinyurl.com/wuja3c4/547_Friend_Circles.swift) | [Art 1](https://tinyurl.com/y6qm62wq), [Art 2](https://tinyurl.com/y2gk7dq4) | Medium |📌 BFS, DFS, Union Find |
|53| **[1254. Number of Closed Islands](https://tinyurl.com/r39pov7)** | [Swift](https://tinyurl.com/wuja3c4/1254_Number_of_Closed_Islands.swift) | [Art 1](https://tinyurl.com/yzedwp3y), [Art 2](https://tinyurl.com/ye5jolg7) | Medium |📌 BFS, DFS, Union Find |


</p>
</details>



### 13. [Recursion, Iteration](https://leetcode.com/explore/learn/card/recursion-i/)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [509. Fibonacci Number](https://leetcode.com/problems/fibonacci-number/)| [Python](https://tinyurl.com/wu6rdaw/509_Fibonacci_Number.py)|
|02| [50. Pow(x, n)](https://leetcode.com/problems/powx-n/)| [Python](https://tinyurl.com/wu6rdaw/50_Pow(x%2C_n).py)|
|00| It's a general topics which has been covered on Backtracking and graph problems| --- | --- | --- | --- |

</p>
</details>



### 14. [Backtracking](https://www.youtube.com/watch?v=DKCbsiDBN6c)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [211. Add and Search Word. Data structure design](https://leetcode.com/problems/add-and-search-word-data-structure-design/)| [Python](https://tinyurl.com/wu6rdaw/211_Add_and_Search_Word_Data_structure_design.py)| [Video 01](https://www.youtube.com/watch?v=qi2ohSEyyDw), [Video 02](https://www.youtube.com/watch?v=neb_2UK5Kuo&t=13s)|
|02| [37. Sudoku Solver](https://leetcode.com/problems/sudoku-solver/)| [Python](https://tinyurl.com/wu6rdaw/37_Sudoku_Solver.py)| [Video 01](https://www.youtube.com/watch?v=JzONv5kaPJM), [Video 02](https://www.youtube.com/watch?v=Zq4upTEaQyM&list=PLiQ766zSC5jM2OKVr8sooOuGgZkvnOCTI)|
|03| [52. N-Queens II](https://leetcode.com/problems/n-queens-ii/)| [Python](https://tinyurl.com/wu6rdaw/52_N-Queens_II.py)| [Video 01](https://www.youtube.com/watch?v=xFv_Hl4B83A), [Video 02](https://www.youtube.com/watch?v=xouin83ebxE)|
|04| [784. Letter Case Permutation](https://leetcode.com/problems/letter-case-permutation/)| [Python](https://tinyurl.com/wu6rdaw/784_Letter_Case_Permutation.py)| --- | Easy | Backtracking  Fundamentals |
|05| [1219. Path with Maximum Gold](https://leetcode.com/problems/path-with-maximum-gold/)| [Python](https://tinyurl.com/wu6rdaw/1219_Path_with_Maximum_Gold.py)| --- | Medium |📌 --- |
|06| [79. Word Search](https://leetcode.com/problems/word-search/)| [Python](https://tinyurl.com/wu6rdaw/79_Word_Search.py)| [Article 1](https://leetcode.com/problems/word-search/discuss/27660/Python-dfs-solution-with-comments.) | Medium | Backtracking  Fundamentals |
|07| [**679. 24 Game**](https://leetcode.com/problems/24-game/)| [Python](https://tinyurl.com/wu6rdaw/679_24_Game.py)| [Art 1](https://tinyurl.com/v73ldlm), [Art 2](https://tinyurl.com/udpg8tt), [Art 3](https://tinyurl.com/so9psfl), [Official](https://tinyurl.com/rwosllt) | Very Hard |📌 Very tricky and important. Revise again. |
|08| **[1066. Campus Bikes II](https://leetcode.com/problems/campus-bikes-ii/)** | [Python](https://tinyurl.com/wu6rdaw/1066_Campus_Bikes_II.py)| [Vid 1](https://tinyurl.com/qq6obzv), **[Art 1](https://tinyurl.com/r4wtfbo)** | Medium |📌 **TODO: CHECK Dijkstra approach again. Backtracking solution is getting TLE. Solve it and implement it with DP also. Very important** |
|09| [1087. Brace Expansion](https://leetcode.com/problems/brace-expansion/)| [Python](https://tinyurl.com/wu6rdaw/1087_Brace_Expansion.py)| --- | Medium |📌 --- |
|10| [78. Subsets](https://leetcode.com/problems/subsets/)| [Python](https://tinyurl.com/wu6rdaw/78_Subsets.py)| [Video 1](https://www.youtube.com/results?search_query=All+Subsets+of+a+Set), [Video 2](https://www.youtube.com/watch?v=MsHFNGltIxw), [Video 3](https://www.youtube.com/watch?v=xTNFs5KRV_g), [Article 1](https://tinyurl.com/y5p2ozjo), **[educative.io](https://tinyurl.com/umzgkhr)** | Medium |📌 TODO: check bit manipulation |
|11| [90. Subsets II](https://tinyurl.com/rqpxyat)| [Python](https://tinyurl.com/wu6rdaw/90_Subsets_II.py)| [Video 1](https://www.youtube.com/results?search_query=All+Subsets+of+a+Set), [Video 2](https://www.youtube.com/watch?v=MsHFNGltIxw), [Video 3](https://www.youtube.com/watch?v=xTNFs5KRV_g), [Article 1](https://tinyurl.com/y5p2ozjo), **[educative.io](https://tinyurl.com/wfkx3jt)** | Medium |📌  |
|12| [46. Permutations](https://leetcode.com/problems/permutations/)| [Python](https://tinyurl.com/wu6rdaw/46_Permutations.py)| [codinginterviewclass.com](https://tinyurl.com/ujv54ef), [algoexpert.io](https://tinyurl.com/tou9p8p), [educative.io](https://tinyurl.com/s3ncxtn), [Article 1](https://tinyurl.com/whkjst5), [Article 2](https://tinyurl.com/y3jq5gqm) | Medium | Backtracking  Fundamentals |
|13| [47. Permutations II](https://tinyurl.com/twg7jb4)| [Python](https://tinyurl.com/wu6rdaw/47_Permutations_II.py)| [codinginterviewclass.com](https://tinyurl.com/ujv54ef), [algoexpert.io](https://tinyurl.com/tou9p8p), [educative.io](https://tinyurl.com/s3ncxtn), [Article 1](https://tinyurl.com/wmpb8h3) | Medium | Backtracking  Fundamentals |
|14| **[31. Next Permutation](https://tinyurl.com/tprftfa)** | [Python](https://tinyurl.com/wu6rdaw/31_Next_Permutation.py), [Swift](https://tinyurl.com/wuja3c4/31_Next_Permutation.swift)| [backtobackswe.com](https://tinyurl.com/ya3oknlr), [Vid 1](https://tinyurl.com/vfmnqt4), [Art 1](https://tinyurl.com/rvn68ov), [Official](https://tinyurl.com/ybvdtjru) | Medium | Backtracking  |
|15| [77. Combinations](https://tinyurl.com/ufdjrht)| [Python](https://tinyurl.com/wu6rdaw/77_Combinations.py)| [codinginterviewclass.com](https://tinyurl.com/snq55o7) | Medium | Backtracking  |
|16| [39. Combination Sum](https://leetcode.com/problems/combination-sum/)| [Python](https://tinyurl.com/wu6rdaw/39_Combination_Sum.py)| [Article 1](https://tinyurl.com/y5fpdget), [Article 2](https://leetcode.com/problems/combination-sum/discuss/16510/Python-dfs-solution.) | Medium | Backtracking  Fundamentals |
|17| [40. Combination Sum II](https://tinyurl.com/roqgnjf)| [Python](https://tinyurl.com/wu6rdaw/40_Combination_Sum_II.py)| --- | Medium | Backtracking  Fundamentals |
|18| [17. Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)| [Python](https://tinyurl.com/wu6rdaw/17_Letter_Combinations_of_a_Phone_Number.py)| [Video 1](https://www.youtube.com/watch?v=a-sMgZ7HGW0), [Video 2 - paid course](https://codinginterviewclass.com/courses/633601/lectures/11653975), [Article 1](https://leetcode.com/problems/letter-combinations-of-a-phone-number/discuss/8067/Python-easy-to-understand-backtracking-solution.) | Medium | Backtracking  Fundamentals |
|19| [22. Generate Parentheses](https://leetcode.com/problems/generate-parentheses/)| [Python](https://tinyurl.com/wu6rdaw/22_Generate_Parentheses.py), [Swift](https://tinyurl.com/wuja3c4/22_Generate_Parentheses.swift) | [educative.io](https://tinyurl.com/wady2xs), [Video 1](https://www.youtube.com/watch?v=sz1qaKt0KGQ), [Article 1](https://leetcode.com/problems/generate-parentheses/discuss/10100/Easy-to-understand-Java-backtracking-solution) | Medium | Backtracking  Fundamentals |
|20| [1088. Confusing Number II](https://tinyurl.com/tb7w75j)| [Python](https://tinyurl.com/wu6rdaw/1088_Confusing_Number_II.py), [Swift](https://tinyurl.com/wuja3c4/1088_Confusing_Number_II.swift) | [Art 1](https://tinyurl.com/wby5h93), [Ref 1](https://tinyurl.com/w54thz5) | Hard | Very interesting |
|21| [465. Optimal Account Balancing](https://tinyurl.com/smsbk4t)| [Python](https://tinyurl.com/wu6rdaw/465_Optimal_Account_Balancing.py), [Swift](https://tinyurl.com/wuja3c4/465_Optimal_Account_Balancing.swift) | **[Art 1](https://tinyurl.com/txuvptu)** | Hard | Loved the question, awsome real life description |
|22| [1079. Letter Tile Possibilities](https://tinyurl.com/r5xjymk) | [Python](https://tinyurl.com/wu6rdaw/1079_Letter_Tile_Possibilities.py), [Swift](https://tinyurl.com/wuja3c4/1079_Letter_Tile_Possibilities.swift) | --- | Medium |📌 Could be done using DFS, backtracking |
|23| **[60. Permutation Sequence](https://tinyurl.com/yz98ms7h)** | [Python](https://tinyurl.com/wu6rdaw/60_Permutation_Sequence.py), [Swift](https://tinyurl.com/wuja3c4/60_Permutation_Sequence.swift) | **[Art 1](https://tinyurl.com/ybvcswyd)** | Medium | 📌 What an awesome question and smart solution. loved it. |

</p>
</details>



### 15. [Greedy](https://www.youtube.com/watch?v=ARvQcqJ_-NY)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| **[1055. Shortest Way to Form String](https://tinyurl.com/rpwq5bx)**| [Python](https://tinyurl.com/wu6rdaw/1055_Shortest_Way_to_Form_String.py)| [Art 1](https://tinyurl.com/t6xap4c), [Art 2](https://tinyurl.com/y2nu3o52), [Art 3](https://tinyurl.com/wsjho6w), [Art 4](https://tinyurl.com/qrfuedy), [Art 5](https://tinyurl.com/tnzxjjz) | Medium | 📌 **Very important and hard problem** |
|02| [1057. Campus Bikes](https://leetcode.com/problems/campus-bikes/)| [Python](https://tinyurl.com/wu6rdaw/1057_Campus_Bikes.py)| [Video 01](https://www.youtube.com/watch?v=tG7GFge4-fQ), [Article 01](https://leetcode.com/problems/campus-bikes/discuss/371604/Python-Solution-Using-Dictionary-With-Explanation)| Medium | 📌 Solve [1066. Campus Bikes II](https://leetcode.com/problems/campus-bikes-ii/) using [DP](https://leetcode.com/problems/campus-bikes-ii/discuss/303471/Python-DP-vs-Backtracking-with-comments), [DFS](https://leetcode.com/problems/campus-bikes-ii/discuss/303383/Python-DFS-with-memorization) and [Priority Queue](https://leetcode.com/problems/campus-bikes-ii/discuss/303422/Python-Priority-Queue) |
|03| **[1007. Minimum Domino Rotations For Equal Row](https://tinyurl.com/y6qgt5fk)** | [Python](https://tinyurl.com/wu6rdaw/Minimum_Domino_Rotations_For_Equal_Row.py)| [Vid 1](https://tinyurl.com/uobop48), [Vid 2](https://tinyurl.com/qkqlcmv),[Art 1](https://tinyurl.com/ufvb3kg),[Art 2](https://tinyurl.com/u85uegn),[Art 3](https://tinyurl.com/yxq7q9v6) | Medium | 📌 Hard to spot if it is a Greedy. Very Important |
|04| [406. Queue Reconstruction by Height](https://leetcode.com/problems/queue-reconstruction-by-height/)| [Python](https://tinyurl.com/wu6rdaw/406_Queue_Reconstruction_by_Height.py)| [Article 1](https://leetcode.com/problems/queue-reconstruction-by-height/discuss/89345/Easy-concept-with-PythonC%2B%2BJava-Solution), [Article 2](https://leetcode.com/problems/queue-reconstruction-by-height/discuss/89359/Explanation-of-the-neat-Sort%2BInsert-solution) | Medium | 📌 Fundamentals |
|05| [621. Task Scheduler](https://leetcode.com/problems/task-scheduler/)| [Python](https://tinyurl.com/wu6rdaw/621_Task_Scheduler.py)| [Ex 1](https://leetcode.com/problems/task-scheduler/discuss/190390/Can-anyone-explain-to-me-what-the-problem-is-asking), [Ex 2](https://leetcode.com/problems/task-scheduler/discuss/130786/Python-solution-with-detailed-explanation), [Vid 1](https://www.youtube.com/watch?v=hVhOeaONg1Y), [Vid 2](https://www.youtube.com/watch?v=zPtI8q9gvX8), [Vid 3](https://www.youtube.com/watch?v=TV9VlHUR-Is), [Vid 4](https://www.youtube.com/watch?v=cr6Ip0J9izc&t=22s) | Medium | 📌 Extremely tricky. Classic problem |
|06| [392. Is Subsequence](https://leetcode.com/problems/is-subsequence/)| [Python](https://tinyurl.com/wu6rdaw/392_Is_Subsequence.py)| [Ex 1](https://leetcode.com/problems/is-subsequence/discuss/87264/Easy-to-understand-binary-search-solution), [Ex 3](https://leetcode.com/problems/is-subsequence/discuss/87302/Binary-search-solution-for-follow-up-with-detailed-comments/144323) | Easy | 📌  |
|07| **[55. Jump Game](https://leetcode.com/problems/jump-game/)** | [Python](https://tinyurl.com/wu6rdaw/55_Jump_Game.py)| **[Official](https://leetcode.com/articles/jump-game/)** , [Art 1](https://tinyurl.com/yy9vyjyn)| Medium | 📌 **Must Check. Learned a lot** |
|08| [45. Jump Game II](https://leetcode.com/problems/jump-game-ii/)| [Python](https://tinyurl.com/wu6rdaw/45_Jump_Game_II.py)| **[educative.io](https://tinyurl.com/rqd5mls)**, [Vid  1](https://www.youtube.com/watch?v=cETfFsSTGJI), [Vid 2](https://www.youtube.com/watch?v=jH_5ypQggWg), [Vid 3](https://www.youtube.com/watch?v=vBdo7wtwlXs), [Art 1](https://tinyurl.com/yalsno6r) | Hard | 📌  |
|09| [767. Reorganize String](https://leetcode.com/problems/reorganize-string/)| [Python](https://tinyurl.com/wu6rdaw/767_Reorganize_String.py)| --- | Medium | Also check Heap approach |
|10| [435. Non-overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/)| [Python](https://tinyurl.com/wu6rdaw/435_Non-overlapping_Intervals.py)| [Vid 1](https://codinginterviewclass.com/courses/633601/lectures/12471331), [Art 1](https://tinyurl.com/yx5n7963) | Medium | Classic problem |
|11| [57. Insert Interval](https://tinyurl.com/wzxrkd8)| [Python](https://tinyurl.com/wu6rdaw/57_Insert_Interval.py)| [Must](https://tinyurl.com/r9zk462) | Hard | Greedy and Merge interval |
|12| [986. Interval List Intersections](https://tinyurl.com/wlw4rke)| [Python](https://tinyurl.com/wu6rdaw/986_Interval_List_Intersections.py), [Swift](https://tinyurl.com/wuja3c4/986_Interval_List_Intersections.swift.swift) | --- | Medium | Greedy and Two Pointer |
|13| [252. Meeting Rooms](https://tinyurl.com/whmtgr7)| [Python](https://tinyurl.com/wu6rdaw/252_Meeting_Rooms.py)| [Official](https://leetcode.com/problems/meeting-rooms/solution/) | Easy | Greedy and uses heap |
|14| [253. Meeting Rooms II](https://tinyurl.com/r8vr7qo)| [Python](https://tinyurl.com/wu6rdaw/253_Meeting_Rooms_II.py), [Swift](https://tinyurl.com/wuja3c4/253_Meeting_Rooms_II.swift.swift) | [Official](https://leetcode.com/problems/meeting-rooms-ii/solution/) | Medium | Greedy and uses heap |
|15| [759. Employee Free Time](https://tinyurl.com/y5z73vre)| [Python](https://tinyurl.com/wu6rdaw/759_Employee_Free_Time.py)| [Educative.io](https://tinyurl.com/v42vmyr) | Hard | Greedy and uses heap. Not done. Check again |
|16| [659. Split Array into Consecutive Subsequences](https://tinyurl.com/vsbddyl) | [Python](https://tinyurl.com/wu6rdaw/659_Split_Array_into_Consecutive_Subsequences.py)| [Art 0](https://tinyurl.com/qq5jucw), [Art 1](https://tinyurl.com/qk7m78s), [Art 2](https://tinyurl.com/sjkdtre), [Art 3](https://tinyurl.com/tnewgqa), **[Vid 1](https://tinyurl.com/u2hnq84)**, **[Art 4](https://tinyurl.com/w3j4yqp)** | Medium | 📌 It's a fucking unclear problem. TODO: Not done. Check again later |
|17| **[68. Text Justification](https://tinyurl.com/r7bzsul)** | [Python](https://tinyurl.com/wu6rdaw/68_Text_Justification.py)| [Vid 1](https://tinyurl.com/jkx2usg), [Vid 2](https://tinyurl.com/wd7rja2), [Vid 3](https://tinyurl.com/qlbsfqf), [Art 0](https://tinyurl.com/u5r5cuy), [Art 1](https://tinyurl.com/s84dym2) | Hard | TODO: Check again later. Very Important |
|18| **[134. Gas Station](https://tinyurl.com/skyh4lj)** | [Python](https://tinyurl.com/wu6rdaw/134_Gas_Station.py), [Python](https://tinyurl.com/wu6rdaw/134_Gas_Station.py), [Swift](https://tinyurl.com/wuja3c4/134_Gas_Station.swift) | [Vid 1](https://tinyurl.com/qq8xf4v), [Art 1](https://tinyurl.com/ss9sxju) | Medium | TODO: Check again later. Very Important |
|19| [1288. Remove Covered Intervals](https://tinyurl.com/wc72tcx) | [Python](https://tinyurl.com/wu6rdaw/1288_Remove_Covered_Intervals.py)| [Art 1](https://tinyurl.com/vpp5hnx) | Medium | **Line Swap with Greedy**. A must read solution. A gold mie, learned a lot |
|20| [1296. Divide Array in Sets of K Consecutive Numbers](https://tinyurl.com/ycfysu46) | [Python](https://tinyurl.com/wu6rdaw/1296_Divide_Array_in_Sets_of_K_Consecutive_Numbers.swift.py), [Swift](https://tinyurl.com/wuja3c4/1296_Divide_Array_in_Sets_of_K_Consecutive_Numbers.swift)| [Art 1](https://tinyurl.com/ybwhyztk) | Medium | --- |
|21| [984. String Without AAA or BBB](https://tinyurl.com/yyqqp8m4) | [Python](https://tinyurl.com/wu6rdaw/984_String_Without_AAA_or_BBB.py), [Swift](https://tinyurl.com/wuja3c4/984_String_Without_AAA_or_BBB.swift)| [Art 1](https://tinyurl.com/y3wbhwgy) | Medium | --- |


</p>
</details>



### 16. [Dynamic Programming](https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews)

**Follow [this](https://tinyurl.com/vmmaxbe) golden rule to approach any DP problem.**

<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [53. Maximum Subarray](https://leetcode.com/problems/maximum-subarray/submissions/)| [Python](https://tinyurl.com/wu6rdaw/53_Maximum_Subarray.py)| [Vid 1](https://tinyurl.com/wnjuna5), [Algoexpert.io](https://tinyurl.com/vqcznww) | Easy | Kadane's Algorithm |
|02| [518. Coin Change 2](https://leetcode.com/problems/coin-change-2/)| [Python](https://tinyurl.com/wu6rdaw/518_Coin_Change_2.py)| **[educative.io](https://tinyurl.com/ro6das2)**, [Vid 1](https://tinyurl.com/wj5xxmw), [codinginterviewclass.com](https://tinyurl.com/urd4fg5), [Algoexpert.io](https://tinyurl.com/rv4r9e6) | Medium | Unbounded Knapsack |
|03| [322. Coin Change](https://leetcode.com/problems/coin-change/solution/)| [Python](https://tinyurl.com/wu6rdaw/322_Coin_Change.py)| **[educative.io](https://tinyurl.com/w7t6jpo)**, [Vid 1](https://tinyurl.com/qlqrz6z), [Algoexpert.io](https://tinyurl.com/sv32o4z) | Medium | Unbounded Knapsack |
|04| **[72. Edit Distance](https://leetcode.com/problems/edit-distance/)** | [Python](https://tinyurl.com/wu6rdaw/72_Edit_Distance.py)| **[educative.com](https://tinyurl.com/wzxp6ef)**, **[algoexpert.io](https://tinyurl.com/szk8rub)**, **[codinginterviewclass.com](https://tinyurl.com/rj6d8fm)**, [Vid 1](https://tinyurl.com/y6chhmm9), [Vid 2](https://tinyurl.com/y4a7ohay)| Hard | TODO: Check again. Very important and classic. Levenshtein Distance |
|05| [70. Climbing Stairs](https://leetcode.com/problems/climbing-stairs/)| [Python](https://tinyurl.com/wu6rdaw/70_Climbing_Stairs.py)| **[educative.io](https://tinyurl.com/rs9jfvd)** | Easy | Fibonacci sequence pattern |
|06| [96. Unique Binary Search Trees](https://leetcode.com/problems/unique-binary-search-trees/)| [Python](https://tinyurl.com/wu6rdaw/96_Unique_Binary_Search_Trees.py)| [educative.io](https://tinyurl.com/s9y9sya), [Vid 1](https://tinyurl.com/ut8wh4u), [Art 1](https://tinyurl.com/wuzpywc), [Vid 2](https://tinyurl.com/vb3s4jm), [Vis 3](https://tinyurl.com/uhet84g) | Medium | 📌 Fundamentals |
|07| [95. Unique Binary Search Trees II](https://leetcode.com/problems/unique-binary-search-trees-ii/)| [Python](https://tinyurl.com/wu6rdaw/95_Unique_Binary_Search_Trees_II.py)| [educative.io](https://tinyurl.com/s9y9sya) |  Medium | --- |
|08| [221. Maximal Square](https://leetcode.com/problems/maximal-square/)| [Python](https://tinyurl.com/wu6rdaw/221_Maximal_Square.py)| [Video 01](https://www.youtube.com/watch?v=_Lf1looyJMU), [Video 02](https://www.youtube.com/watch?v=FO7VXDfS8Gk)|
|09| [85. Maximal Rectangle](https://leetcode.com/problems/maximal-rectangle/)| [Python](https://tinyurl.com/wu6rdaw/85_Maximal_Rectangle.py)| [Video 01](https://www.youtube.com/watch?v=g8bSdXCG-lA)|
|10| [42. Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/)| [Python](https://tinyurl.com/wu6rdaw/42_Trapping_Rain_Water.py)| [Article 01](https://leetcode.com/problems/trapping-rain-water/solution/)| Hard | 📌 Check stack and 2 pointers based solutions |
|11| [300. Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/)| [Python](https://tinyurl.com/wu6rdaw/300_Longest_Increasing_Subsequence.py)| [educative.io](https://tinyurl.com/vcskq2n), [codinginterviewclass.com](https://tinyurl.com/yx477m32), [algoexpert.io](https://tinyurl.com/ydhxzrbb), [Vid 01](https://tinyurl.com/ufcrusx), [Vid 2](https://tinyurl.com/vldt7sd) | Medium | 📌 Need to check Binary Search approach, which is a lot harder |
|12| [1143. Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/)| [Python](https://tinyurl.com/wu6rdaw/1143_Longest_Common_Subsequence.py)| [educative.io](https://tinyurl.com/qvv8dje), [algoexpert.io](https://tinyurl.com/vlkmx4c) | Medium | 📌 Classic DP |
|13| [5. Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/)| [Python](https://tinyurl.com/wu6rdaw/5_Longest_Palindromic_Substring.py)| [educative.io](https://tinyurl.com/rwouqnc), [algoexpert.io](https://tinyurl.com/rdaxfyc), [Vid 1](https://tinyurl.com/sd7me6k) | Medium | 📌 Classic DP |
|14| [1066. Campus Bikes II](https://leetcode.com/problems/campus-bikes-ii/)| [Python](https://tinyurl.com/wu6rdaw/1066_Campus_Bikes_II.py)|  | Medium |📌 TODO: Backtracking solution is getting TLE. Solve it and implement it with DP also |
|15| [121. Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/)| [Python](https://tinyurl.com/wu6rdaw/121_Best_Time_to_Buy_and_Sell_Stock.py)| [Vid 1](https://codinginterviewclass.com/courses/coding-interview-class/lectures/12305111) | Easy | Fundamental |
|16| [122. Best Time to Buy and Sell Stock II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/)| [Python](https://tinyurl.com/wu6rdaw/122_Best_Time_to_Buy_and_Sell_Stock_II.py)| [Video 01](https://www.youtube.com/watch?v=blUwDD6JYaE)| Easy | More like Greedy |
|17| [123. Best Time to Buy and Sell Stock III](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/)| [Python](https://tinyurl.com/wu6rdaw/123_Best_Time_to_Buy_and_Sell_Stock_III.py)| **[Vid 1](https://www.youtube.com/watch?v=oDhu5uGq_ic&t=2s), [Vid 2](https://www.youtube.com/watch?v=Pw6lrYANjz4)** | Hard | Fundamental |
|18| [188. Best Time to Buy and Sell Stock IV](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/)| [Python](https://tinyurl.com/wu6rdaw/188_Best_Time_to_Buy_and_Sell_Stock_IV.py)| **[Vid 1](https://www.youtube.com/watch?v=oDhu5uGq_ic&t=2s), [Vid 2](https://www.youtube.com/watch?v=Pw6lrYANjz4)** | Hard | **Getting "Memory Limit Exceeded"** |
|19| **[309. Best Time to Buy and Sell Stock with Cooldown](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/)**| [Python](https://tinyurl.com/wu6rdaw/309_Best_Time_to_Buy_and_Sell_Stock_with_Cooldown.py)| **[Must](https://tinyurl.com/syuepe6)**, [Art0](https://tinyurl.com/vbzcm6z), [Art1](https://tinyurl.com/vtuga7r), **[Must 2](https://tinyurl.com/vgqsw89)** , [Art 2](https://tinyurl.com/y8uojzjl), [Art 3](https://tinyurl.com/ul95d62)  | Medium | Very tricky, must check again. Couldn't solve |
|20| [714. Best Time to Buy and Sell Stock with Transaction Fee](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/)| [Python](https://tinyurl.com/wu6rdaw/714_Best_Time_to_Buy_and_Sell_Stock_with_Transaction_Fee.py)| **[Must Read](https://tinyurl.com/y7eaa7vk)** , [Art 2](https://tinyurl.com/wzawybe) | Medium | More like Greedy, but DP |
|21| **[198. House Robber](https://leetcode.com/problems/house-robber/)**| [Python](https://tinyurl.com/wu6rdaw/198_House_Robber.py)| **[Must](https://tinyurl.com/vp9v27d)**, **[educative.io](https://tinyurl.com/srtvmra)** | Easy | A Gold Mine |
|22| [213. House Robber II](https://leetcode.com/problems/house-robber-ii/)| [Python](https://tinyurl.com/wu6rdaw/213_House_Robber_II.py)| [Art 1](https://tinyurl.com/wwza8d5), [Art 2](https://tinyurl.com/qtqwcl4) | Medium | --- |
|23| [337. House Robber III](https://leetcode.com/problems/house-robber-iii/)| [Python](https://tinyurl.com/wu6rdaw/337_House_Robber_III.py)| **[Art 1](https://tinyurl.com/yd8zjvvj)** | Medium | **[Another gold mine](https://tinyurl.com/yd8zjvvj)**, hidden greedy and DFS |
|24| **[416. Partition Equal Subset Sum](https://tinyurl.com/rmf5upz)** | [Python](https://tinyurl.com/wu6rdaw/416_Partition_Equal_Subset_Sum.py)| **[educative.io](https://tinyurl.com/wpxxyjy)**, [Art 1](https://tinyurl.com/we99l2n), [Vid 1](https://tinyurl.com/vvtavaw), [Vid 2](https://tinyurl.com/wabhu46), [Vid 3](https://tinyurl.com/sk89wa3), [Vid 4](https://tinyurl.com/z352yjj) | Medium | **0/1 Knapsack**, Very important |
|25| **[494. Target Sum](https://tinyurl.com/ro8wdkz)** | [Python](https://tinyurl.com/wu6rdaw/494_Target_Sum.py)| **[educative.io](https://tinyurl.com/wfhzh29)**, **[MUST MUST READ](https://tinyurl.com/vmmaxbe)** | Medium | **0/1 Knapsack**, Very important. TODO: Not  DOne. Check again |
|26| **[343. Integer Break](https://tinyurl.com/qsmmtc3)** | [Python](https://tinyurl.com/wu6rdaw/343_Integer_Break.py)| **[Art 1](https://tinyurl.com/wfhzh29)**, **[Art 2](https://tinyurl.com/t2rky7o)** | Medium | **Unbounded Knapsack**. TODO: Not Done. Check again |
|27| **[516. Longest Palindromic Subsequence](https://tinyurl.com/r7rege5)** | [Python](https://tinyurl.com/wu6rdaw/516_Longest_Palindromic_Subsequence.py)| **[educative.io](https://tinyurl.com/rvh2x2v)**, **[Vid 1](https://tinyurl.com/vjodfau)**, [Vid 2](https://tinyurl.com/uob2dhd) | Medium | --- |
|28| [647. Palindromic Substrings](https://tinyurl.com/qw3blls) | [Python](https://tinyurl.com/wu6rdaw/647_Palindromic_Substrings.py)| **[educative.io](https://tinyurl.com/wbc4eqb)** | Medium | --- |
|29| [680. Valid Palindrome II](https://tinyurl.com/rcdbykq) | [Python](https://tinyurl.com/wu6rdaw/680_Valid_Palindrome_II.py)| **[educative.io](https://tinyurl.com/vehzweg)**, [Art 1](https://tinyurl.com/twetoqk), [Art 2](https://tinyurl.com/wve6da4) | Medium | --- |
|30| [1312. Minimum Insertion Steps to Make a String Palindrome](https://tinyurl.com/rhzxwa6) | [Python](https://tinyurl.com/wu6rdaw/1312_Minimum_Insertion_Steps_to_Make_a_String_Palindrome.py)| **[educative.io](https://tinyurl.com/vehzweg)** | Hard | --- |
|31| **[132. Palindrome Partitioning II](https://tinyurl.com/t2rqddx)** | [Python](https://tinyurl.com/wu6rdaw/132_Palindrome_Partitioning_II.py)| **[educative.io](https://tinyurl.com/ruuewtc)**, [algoexpert.io](https://tinyurl.com/u4l4zdk), [Vid 1](https://tinyurl.com/rkq7lbu), [Vid 2](https://tinyurl.com/t9cgysf) | Hard | TODO: Check again. Very difficult and important |
|32| **[718. Maximum Length of Repeated Subarray](https://tinyurl.com/t5ykzen)** | [Python](https://tinyurl.com/wu6rdaw/718_Maximum_Length_of_Repeated_Subarray.py)| **[educative.io](https://tinyurl.com/teew37b)** | Medium | **Longest Common Substring** variation |
|33| [583. Delete Operation for Two Strings](https://tinyurl.com/wlzmbfn) | [Python](https://tinyurl.com/wu6rdaw/583_Delete_Operation_for_Two_Strings.py)| **[educative.io](https://tinyurl.com/wy357cz)** | Medium | --- |
|34| [1092. Shortest Common Supersequence](https://tinyurl.com/qlpc52j) | [Python](https://tinyurl.com/wu6rdaw/1092_Shortest_Common_Supersequence.py)| **[educative.io](https://tinyurl.com/qmro98q)**, [Art 1](https://tinyurl.com/t87jfgg) | Hard | TODO: Not Done |
|35| [115. Distinct Subsequences](https://tinyurl.com/gudjxts) | [Python](https://tinyurl.com/wu6rdaw/115_Distinct_Subsequences.py)| **[educative.io](https://tinyurl.com/yx6s5c4m)** | Hard | TODO: Check again |
|36| **[97. Interleaving String](https://tinyurl.com/qmp8yn5)** | [Python](https://tinyurl.com/wu6rdaw/97_Interleaving_String.py)| **[educative.io](https://tinyurl.com/uzbogsf)**, [Vid 1](https://tinyurl.com/wlmpvjo) | Hard | TODO: Check again. Very difficult and tricky to understand |
|37| [1048. Longest String Chain](https://tinyurl.com/uvb5v6s) | [Python](https://tinyurl.com/wu6rdaw/1048_Longest_String_Chain.py)| [Art 1](https://tinyurl.com/tcslm9l) | Medium | Modified LIS |
|38| **[801. Minimum Swaps To Make Sequences Increasing](https://tinyurl.com/rvtcyvb)** | [Python](https://tinyurl.com/wu6rdaw/801_Minimum_Swaps_To_Make_Sequences_Increasing.py)| [Art 1](https://tinyurl.com/tzx7wpv), [Art 2](https://tinyurl.com/ugybcmz) | Medium | TODO: Check again. Very analytical and tricky to come up with |
|39| **[279. Perfect Squares](https://tinyurl.com/jcjc6kf)** | [Python](https://tinyurl.com/wu6rdaw/279_Perfect_Squares.py)| **[Must](https://tinyurl.com/raomm4y)**, [Vid 1](https://tinyurl.com/rxpaqe8), [Vis 2](https://tinyurl.com/uevqohx) | Medium | TODO: Check again. Very Important. Very analytical and tricky to come up with |
|40| **[139. Word Break](https://tinyurl.com/yyyy9dqz)** | [Python](https://tinyurl.com/wu6rdaw/139_Word_Break.py)| **[Must](https://tinyurl.com/sdzmo32)**, [Vid 1](https://tinyurl.com/s4hvakw), [Vis 2](https://tinyurl.com/rjwjanc), [Vid 3](https://tinyurl.com/rdxmwwg) | Medium | TODO: Check again. Very Important. |
|41| **[62. Unique Paths](https://tinyurl.com/j8xmh7u)** | [Python](https://tinyurl.com/wu6rdaw/62_Unique_Paths.py), [Swift](https://tinyurl.com/wuja3c4/62_Unique_Paths.swift)| **[Vid 1](https://tinyurl.com/wp6vsqq)**, [Art 1](https://tinyurl.com/roammlg), [Art 2](https://tinyurl.com/tt5fpjk) | Medium | TODO: Check again |
|42| **[152. Maximum Product Subarray](https://tinyurl.com/rxbfx5k)** | [Python](https://tinyurl.com/wu6rdaw/152_Maximum_Product_Subarray.py), [Swift](https://tinyurl.com/wuja3c4/152_Maximum_Product_Subarray.swift)| **[Vid 1](https://tinyurl.com/t24rc22)**, [Art 1](https://tinyurl.com/uzdpw4k) | Medium | Kadane's algorithm on multiplication |
|43| **[64. Minimum Path Sum](https://tinyurl.com/ugnoql2)** | [Python](https://tinyurl.com/wu6rdaw/64_Minimum_Path_Sum.py), [Swift](https://tinyurl.com/wuja3c4/64_Minimum_Path_Sum.swift)| --- | Medium | --- |
|44| **[91. Decode Ways](https://tinyurl.com/t5yx86t)** | [Python](https://tinyurl.com/wu6rdaw/91_Decode_Ways.py), [Swift](https://tinyurl.com/wuja3c4/91_Decode_Ways.swift)| [Vid 1](https://tinyurl.com/wxc7jlj) | Medium | --- |
|45| **[975. Odd Even Jump](https://tinyurl.com/y5ovyklj)** | [Python](https://tinyurl.com/wu6rdaw/975_Odd_Even_Jump.py), [Swift](https://tinyurl.com/wuja3c4/975_Odd_Even_Jump.swift)| [Vid 1](https://tinyurl.com/vxyed3g), **[Art 1](https://tinyurl.com/wbjrnyt)** | Hard | DP using stack. Vary tricky and Interesting problem, loved it |
|46| **[562. Longest Line of Consecutive One in Matrix](https://tinyurl.com/u2fb4a6)** | [Python](https://tinyurl.com/wu6rdaw/562_Longest_Line_of_Consecutive_One_in_Matrix.py), [Swift](https://tinyurl.com/wuja3c4/562_Longest_Line_of_Consecutive_One_in_Matrix.swift)| [Art 1](https://tinyurl.com/vqppbae), [Art 2](https://tinyurl.com/t3xtfq8) | Medium |  |
|47| **[552. Student Attendance Record II](https://tinyurl.com/tnxj5oa)** | [Python](https://tinyurl.com/wu6rdaw/552_Student_Attendance_Record_II.py), [Swift](https://tinyurl.com/wuja3c4/552_Student_Attendance_Record_II.swift)| [Art 1](https://tinyurl.com/rdt2cgr), [Art 2](https://tinyurl.com/s8okmdb), [Art 3](https://tinyurl.com/uhggppt) | Hard | **This is a FUCKING difficult DP problem. Don't dare to solve it** |
|48| **[1320. Minimum Distance to Type a Word Using Two Fingers](https://tinyurl.com/ur876a6)** | [Python](https://tinyurl.com/wu6rdaw/1320_Minimum_Distance_to_Type_a_Word_Using_Two_Fingers.py), [Swift](https://tinyurl.com/wuja3c4/1320_Minimum_Distance_to_Type_a_Word_Using_Two_Fingers.swift)| [Vid 1](https://tinyurl.com/u5fcb3z), [Art 1](https://tinyurl.com/w386adm), [Art 2](https://tinyurl.com/rnkbhp3), [Art 3](https://tinyurl.com/tqwgraz), [Art 4](https://tinyurl.com/v46fuzm) | Hard | **Important. TODO: Check again** |
|49| **[688. Knight Probability in Chessboard](https://tinyurl.com/y8qgukyr)** | [Python](https://tinyurl.com/wu6rdaw/688_Knight_Probability_in_Chessboard.py), [Swift](https://tinyurl.com/wuja3c4/688_Knight_Probability_in_Chessboard.swift)| [Art 1](https://tinyurl.com/ycfu5ux4), [Art 2](https://tinyurl.com/y987zy5g), [Art 3](https://tinyurl.com/ybtv5p5m) | Medium(Really!) | **Important, and fucking difficult. TODO: Check again** |
|50| **[140. Word Break II](https://tinyurl.com/yb9yotou)** | [Python](https://tinyurl.com/wu6rdaw/140_Word_Break_II.py), [Swift](https://tinyurl.com/wuja3c4/140_Word_Break_II.swift)| [Art 1](https://tinyurl.com/yc9jvbpl), [Art 2](https://tinyurl.com/yaa7b7lu) | Hard | **OHH Boy, you must recheck this, Important. TODO: Check again.  An unique combination of DP, DFS and Backtracking** |
|51| **[1027. Longest Arithmetic Sequence](https://tinyurl.com/y7w7mmfn)** | [Python](https://tinyurl.com/wu6rdaw/1027_Longest_Arithmetic_Sequence.py), [Swift](https://tinyurl.com/wuja3c4/1027_Longest_Arithmetic_Sequence.swift)| [Art 1](https://tinyurl.com/ycto2x5o), [Art 2](https://tinyurl.com/yab7byj5) | Medium | **I didn't know that map can be used in 1d bottom-up dp. learned new things** |
|52| **[304. Range Sum Query 2D - Immutable](https://tinyurl.com/ybhblo57)** | [Python](https://tinyurl.com/wu6rdaw/304_Range_Sum_Query_2D_Immutable.py), [Swift](https://tinyurl.com/wuja3c4/304_Range_Sum_Query_2D_Immutable.swift)| [Art 1](https://tinyurl.com/ycto2x5o), [Art 2](https://tinyurl.com/yab7byj5) | Medium | **very good question, classical** |
|53| **[1477. Find Two Non-overlapping Sub-arrays Each With Target Sum](https://tinyurl.com/ybte7ydl)** | [Python](https://tinyurl.com/wu6rdaw/1477_Find_Two_Non_overlapping_Sub_arrays_Each_With_Target_Sum.py), [Swift](https://tinyurl.com/wuja3c4/1477_Find_Two_Non_overlapping_Sub_arrays_Each_With_Target_Sum.swift)| [Art 1](https://tinyurl.com/y7rshs2j), [Art 2](https://tinyurl.com/y8x7cgxl) | Medium | **Very interesting and deceiving and tricky problem. An unique combination of sliding window and DP** |
|54| **[368. Largest Divisible Subset](https://tinyurl.com/ya8sv5jr)** | [Python](https://tinyurl.com/wu6rdaw/368_Largest_Divisible_Subset.py), [Swift](https://tinyurl.com/wuja3c4/368_Largest_Divisible_Subset.swift)| Official Solution | Medium | **Interesting problem.** |
|55| **[523. Continuous Subarray Sum](https://tinyurl.com/y6ce49ln)** | [Python](https://tinyurl.com/wu6rdaw/523_Continuous_Subarray_Sum.py), [Swift](https://tinyurl.com/wuja3c4/523_Continuous_Subarray_Sum.swift)| **[Art 1](https://tinyurl.com/yb3ya47s)** | Medium | **Tricky to see the DP** |
|56| **[689. Maximum Sum of 3 Non-Overlapping Subarrays](https://tinyurl.com/y9nlm8tg)** | [Python](https://tinyurl.com/wu6rdaw/689_Maximum_Sum_of_3_Non_Overlapping_Subarrays.py), [Swift](https://tinyurl.com/wuja3c4/689_Maximum_Sum_of_3_Non_Overlapping_Subarrays.swift)| **[Art 1](https://tinyurl.com/__)** | Hard | **Mainly, tricly array index manipulation. TODO: need to solve it in DP and sliding window approach** |
|57| **[338. Counting Bits](https://tinyurl.com/y5ly38nj)** | [Python](https://tinyurl.com/wu6rdaw/338_Counting_Bits.py), [Swift](https://tinyurl.com/wuja3c4/338_Counting_Bits.swift)|  | Medium | --- |
|58| **[1269. Number of Ways to Stay in the Same Place After Some Steps](https://tinyurl.com/y43jo8j3)** | [Python](https://tinyurl.com/wu6rdaw/1269_Number_of_Ways_to_Stay_in_the_Same_Place_After_Some_Steps.py), [Swift](https://tinyurl.com/wuja3c4/1269_Number_of_Ways_to_Stay_in_the_Same_Place_After_Some_Steps.swift)| [Art 1](https://tinyurl.com/yynv9xe2) | Hard | Loved the problem. Very versatile |
|59| **[1277. Count Square Submatrices with All Ones](https://tinyurl.com/y6a82a9r)** | [Python](https://tinyurl.com/wu6rdaw/1277_Count_Square_Submatrices_with_All_Ones.py), [Swift](https://tinyurl.com/wuja3c4/1277_Count_Square_Submatrices_with_All_Ones.swift)| [Must](https://tinyurl.com/y4sa8zgk) | Medium | --- |
|60| [418. Sentence Screen Fitting](https://tinyurl.com/yhtu7lld) | [Swift](https://tinyurl.com/wuja3c4/418_Sentence_Screen_Fitting.swift)| [Art 1](https://tinyurl.com/yh4xt84c) | Medium | --- |
|61| [1937. Maximum Number of Points with Cost](https://tinyurl.com/yhh6dmeh) | [Swift](https://tinyurl.com/wuja3c4/1937_Maximum_Number_of_Points_with_Cost.swift)| [Art 1](https://tinyurl.com/yg6hs4md) | Medium | --- |
|62| [63. Unique Paths II](https://tinyurl.com/yjh69kzh) | [Swift](https://tinyurl.com/wuja3c4/63_Unique_Paths_II.swift)| --- | Medium | --- |
|63| [218. Longest Arithmetic Subsequence of Given Difference](https://tinyurl.com/yh8chvky) | [Swift](https://tinyurl.com/wuja3c4/218_Longest_Arithmetic_Subsequence_of_Given_Difference.swift)| [Art 1](https://tinyurl.com/yf6vygcp) | Medium | --- |



</p>
</details>



### 17. Bit Manipulation

**Follow [this](https://tinyurl.com/vmmaxbe) golden rule to approach any DP problem.**

<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [78. Subsets](https://leetcode.com/problems/subsets/)| [Python](https://tinyurl.com/wu6rdaw/78_Subsets.py)| [Video 1](https://www.youtube.com/results?search_query=All+Subsets+of+a+Set), [Video 2](https://www.youtube.com/watch?v=MsHFNGltIxw), [Video 3](https://www.youtube.com/watch?v=xTNFs5KRV_g) | Medium |📌 TODO: code it in all 4 ways. First complete DFS, BFS, Bit Manipulation and some easy back tracking problem. ⭐ 😭 Didn't understand, check again |
|02| [187. Repeated DNA Sequences](https://leetcode.com/problems/repeated-dna-sequences/)| [Python](https://tinyurl.com/wu6rdaw/187_Repeated_DNA_Sequences.py)| [Official](https://leetcode.com/problems/repeated-dna-sequences/solution/) | Medium | ⭐ 😭 Didn't understand, check again  |
|03| [461. Hamming Distance](https://leetcode.com/problems/hamming-distance/)| [Python](https://tinyurl.com/wu6rdaw/461_Hamming_Distance.py)| --- | Easy |📌 The key here is to practice bit operation, i ignore any other attempts |
|04| [371. Sum of Two Integers](https://leetcode.com/problems/sum-of-two-integers/)| [Python](https://tinyurl.com/wu6rdaw/371_Sum_of_Two_Integers.py)| [Video 1](https://www.youtube.com/watch?v=qq64FrA2UXQ), [Atricle 1](https://leetcode.com/problems/sum-of-two-integers/discuss/132479/Simple-explanation-on-how-to-arrive-at-the-solution) | Easy |📌 The key here is to practice bit operation, i ignore any other attempts |
|05| [169. Majority Element](https://leetcode.com/problems/majority-element/)| [Python](https://tinyurl.com/wu6rdaw/169_Majority_Element.py)| [Atricle 1](https://www.geeksforgeeks.org/find-the-majority-element-set-3-bit-magic/) | Easy |📌 The key here is to practice bit operation, i ignore any other attempts |
|06| [191. Number of 1 Bits](https://leetcode.com/problems/number-of-1-bits/)| [Python](https://tinyurl.com/wu6rdaw/191_Number_of_1_Bits.py)| [Article 1](https://leetcode.com/problems/number-of-1-bits/discuss/55106/Python-2-solutions.-One-naive-solution-with-built-in-functions.-One-trick-with-bit-operation) | Easy |📌 The key here is to practice bit operation |
|07| [268. Missing Number](https://leetcode.com/problems/missing-number/)| [Python](https://tinyurl.com/wu6rdaw/268_Missing_Number.py)| [Educative.io](https://tinyurl.com/uefnn3a), [Official](https://leetcode.com/problems/missing-number/solution/) | Easy | 📌 Learned few very important binary logic properties. Also check cyclic sort technique |
|08| [389. Find the Difference](https://leetcode.com/problems/find-the-difference/)| [Python](https://tinyurl.com/wu6rdaw/389_Find_the_Difference.py)| --- | Easy | 📌 |
|09| [231. Power of Two](https://leetcode.com/problems/power-of-two/)| [Python](https://tinyurl.com/wu6rdaw/231_Power_of_Two.py)| [Official](https://leetcode.com/problems/power-of-two/solution/), [Signed number representations](https://en.wikipedia.org/wiki/Signed_number_representations) | Easy | 📌 Learned few very important binary logic properties |
|10| [136. Single Number](https://leetcode.com/problems/single-number/)| [Python](https://tinyurl.com/wu6rdaw/136_Single_Number.py)| [Educative.io](https://tinyurl.com/rzkypbg) | Easy |📌 The key here is to practice bit operation, i ignore any other attempts |
|11| [137. Single Number II](https://tinyurl.com/oxtpdeg)| [Python](https://tinyurl.com/wu6rdaw/137_Single_Number_II.py)| [1](https://leetcode.com/problems/single-number-ii/discuss/43302/Accepted-code-with-proper-Explaination.-Does-anyone-have-a-better-idea), [2](https://medium.com/@lenchen/leetcode-137-single-number-ii-31af98b0f462), [3](https://leetcode.com/problems/single-number-ii/discuss/43294/Challenge-me-thx/176039), Check discussion | Medium | ⭐ 😭 Didn't understand, check again  |
|12| [260. Single Number III](https://tinyurl.com/y4hgvu2y)| [Python](https://tinyurl.com/wu6rdaw/260_Single_Number_III.py)| **[Educative.io](https://tinyurl.com/tdhj9eh)** | Medium | ⭐ Check again, very important  |
|13| [476. Number Complement](https://tinyurl.com/tadg5uf)| [Python](https://tinyurl.com/wu6rdaw/476_Number_Complement.py)| **[Educative.io](https://tinyurl.com/ucwmq5n)** | Easy | ⭐ Check again  |
|14| [832. Flipping an Image](https://tinyurl.com/uog7h9f)| [Python](https://tinyurl.com/wu6rdaw/832_Flipping_an_Image.py)| **[Educative.io](https://tinyurl.com/wyd8c4g)** | Easy | ⭐ Check again  |
|15| [67. Add Binary](https://tinyurl.com/y6hbtal7)| [Python](https://tinyurl.com/wu6rdaw/67_Add_Binary.py), [Swift](https://tinyurl.com/wuja3c4/67_Add_Binary.swift) | **[Official](https://tinyurl.com/y7w7ry8e)**, [Art 1](https://tinyurl.com/yaxg48ag), [Art 2](https://tinyurl.com/y77e2ylc), [Vid 1](https://www.youtube.com/watch?v=NLKQEOgBAnw), [Vid 2](https://www.youtube.com/watch?v=qq64FrA2UXQ&feature=emb_title) | Easy (FUCK NO) | ⭐ Check again  |

</p>
</details>



### 18. Miscellaneous ([Line Swap](https://tinyurl.com/yx5pwdao), [Binary Indexed Tree](), [Segment Tree](https://tinyurl.com/w6jxpcg), [Minimax](https://tinyurl.com/twgbp6n), [Math](https://tinyurl.com/wb2h2mo), AVL Tree, Red-Black Tree, Interval Tree etc)
<details><summary>Leetcode problems with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| **[218. The Skyline Problem](https://tinyurl.com/y8om73ah)** | [Python](https://tinyurl.com/wu6rdaw/218_The_Skyline_Problem.py), [Swift](https://tinyurl.com/wuja3c4/218_The_Skyline_Problem.swift)| [Vid 1](https://tinyurl.com/ryu2f5u), [Vid 2](https://tinyurl.com/rae83uz), [Vid 3](https://tinyurl.com/scmrjke), [Vid 4](https://tinyurl.com/vv5pjdz), [Art 1](https://tinyurl.com/nxotn8v) | Hard | TODO: Not Done. Very important. |
|02| **[375. Guess Number Higher or Lower II](https://tinyurl.com/y6ywak9n)** | [Python](https://tinyurl.com/wu6rdaw/375_Guess_Number_Higher_or_Lower_II.py), [Swift](https://tinyurl.com/wuja3c4/375_Guess_Number_Higher_or_Lower_II.swift)| [Art 0](https://tinyurl.com/y888xrkm), [Art 1](https://tinyurl.com/oaqgkp9), [Art2 2](https://tinyurl.com/vpu9gt2), [Art 3](https://tinyurl.com/rpr83um) | Hard | TODO: Not Done. Very important. Did't understand properly |
|03| **[843. Guess the Word](https://tinyurl.com/vyk9ynp)** | [Python](https://tinyurl.com/wu6rdaw/843_Guess_the_Word.py)| **[Art 1](https://tinyurl.com/wqy5ll4)** | Hard | **Minimax**. TODO: Check again. Very important and interesting |
|04| [593. Valid Square](https://tinyurl.com/rr2z8l7) | [Python](https://tinyurl.com/wu6rdaw/593_Valid_Square.py)| [Art 1](https://tinyurl.com/w7gucmn), [Art 2](https://tinyurl.com/qlw7tn4) | Medium | **Math** |
|05| [1272. Remove Interval](https://tinyurl.com/syvucrt) | [Python](https://tinyurl.com/wu6rdaw/1272_Remove_Interval.py)| [Art 1](https://tinyurl.com/srv4knp) | Medium | **Line Swap** |
|06| **[1288. Remove Covered Intervals](https://tinyurl.com/wc72tcx)** | [Python](https://tinyurl.com/wu6rdaw/1288_Remove_Covered_Intervals.py)| [Art 1](https://tinyurl.com/vpp5hnx) | Medium | **Line Swap with Greedy**. A must read solution. A gold mie, learned a lot |
|07| **[1229. Meeting Scheduler](https://tinyurl.com/t6vtlph)** | [Python](https://tinyurl.com/wu6rdaw/1229_Meeting_Scheduler.py)| [Art 1](https://tinyurl.com/rau4xcb) | Medium | **Line Swap**, learned a lot |
|08| **[850. Rectangle Area II](https://tinyurl.com/utc58vb)** | [Python](https://tinyurl.com/wu6rdaw/850_Rectangle_Area_II.py)| [Art 1](https://tinyurl.com/t59zg3e), [Vid 1](https://tinyurl.com/sumo5b6), [Art 2](https://tinyurl.com/s27k9o4) | Hard | **Line Swap using heap and Segment Tree**. TODO: Solve it using Segment Tree |
|09| **[307. Range Sum Query - Mutable](https://tinyurl.com/utc58vb)** | [Python](https://tinyurl.com/wu6rdaw/307_Range_Sum_Query_-_Mutable.py)| **[Vid 1](https://tinyurl.com/sumo5b6), [Art 1](https://tinyurl.com/r54yf9y), [Art 2](https://tinyurl.com/srucx8l)** | Medium | **Segment Tree Basics**. Very Important |
|10| **[327. Count of Range Sum](https://tinyurl.com/ulofnqj)** | [Python](https://tinyurl.com/wu6rdaw/327_Count_of_Range_Sum.py)| **[Vid 1](https://tinyurl.com/sumo5b6), [Art 1](https://tinyurl.com/rlmha9k), [Art 2](https://tinyurl.com/qlqod4c)** | Hard | **Segment Tree Basics**. Very Important |
|11| **[239. Sliding Window Maximum](https://tinyurl.com/rvhujl5)** | [Python](https://tinyurl.com/wu6rdaw/239_Sliding_Window_Maximum.py)| **[Video 1](https://tinyurl.com/v767bl3)**, [Official](https://tinyurl.com/www4np2), [Art 1](https://tinyurl.com/y8nbroux), [Art 2](https://tinyurl.com/s62fzls), **[Art 3](https://tinyurl.com/vd3dtch)**, **[Art 4](https://tinyurl.com/yx3sjp46)** | Hard | 📌 Here, I have specifically focused on solving it with AVL and Red-Black Tree. A "Queue" approach can be found o Queue section  |
|12| **[398. Random Pick Index](https://tinyurl.com/ydf3t2ke)** | [Python](https://tinyurl.com/wu6rdaw/398_Random_Pick_Index.py)| **[Video 1](https://tinyurl.com/ycjk3gk6)**,  [Art 1](https://tinyurl.com/ych82hfp), [Art 2](https://tinyurl.com/y8hogyty), [Art 3](https://tinyurl.com/y7slu8x2), [Art 4](https://tinyurl.com/y896sqmt), [Art 5](https://tinyurl.com/yafb3esf) | Medium (Really!!??) | 📌 **Reservoir sampling**, What's the point of asking this into an interview!!?? |
|13| **[319. Bulb Switcher](https://tinyurl.com/ycygg2ju)** | [Python](https://tinyurl.com/wu6rdaw/319_Bulb_Switcher.py)| [Art 1](https://tinyurl.com/y886rzfe), [Art 2](https://tinyurl.com/y9n7vo2x), [Art 3](https://tinyurl.com/ya3fookw) | Medium (Really!!??) | Are you fucking kidding me!! We are programmers, not math wizard. |
|14| **[1344. Angle Between Hands of a Clock](https://tinyurl.com/yy3g8mg6)** | [Python](https://tinyurl.com/wu6rdaw/1344_Angle_Between_Hands_of_a_Clock.py), [Swift](https://tinyurl.com/wuja3c4/1344_Angle_Between_Hands_of_a_Clock.swift)| --- | Medium | FB really likes to ask tricky question. |
|15| **[1276. Number of Burgers with No Waste of Ingredients](https://tinyurl.com/y4dl7mne)** | [Python](https://tinyurl.com/wu6rdaw/1276_Number_of_Burgers_with_No_Waste_of_Ingredients.py), [Swift](https://tinyurl.com/wuja3c4/1276_Number_of_Burgers_with_No_Waste_of_Ingredients.swift)| [Art 1](https://tinyurl.com/y2u668aa), [Art 2](https://tinyurl.com/y2u9nvre), [Art 3](https://tinyurl.com/yxdzbp9s) | Medium | Pure math |
|16| **[777. Swap Adjacent in LR String](https://tinyurl.com/y2syu722)** | [Python](https://tinyurl.com/wu6rdaw/777_Swap_Adjacent_in_LR_String.py), [Swift](https://tinyurl.com/wuja3c4/777_Swap_Adjacent_in_LR_String.swift)| [Art 1](https://tinyurl.com/y6cfe8gy) | Medium | Brainteser |

</p>
</details>



---

---


## AlgoExpert
<b>100 Problems</b>

[My certificate of completion](https://certificate.algoexpert.io/AE-ea0a67c587)

### 1. Arrays

<details><summary>Problem statement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Two_Number_Sum](algoexpert.io/questions/Two_Number_Sum.md)| [Swift](algoexpert.io/swift/Two_Number_Sum.swift), [Python](algoexpert.io/python/Two_Number_Sum.py)|
|02| [Three_Number_Sum](algoexpert.io/questions/Three_Number_Sum.md) | [Python](algoexpert.io/python/Three_Number_Sum.py)|
|03| [Smallest_Difference](algoexpert.io/questions/Smallest_Difference.md) | [Python](algoexpert.io/python/Smallest_Difference.py)|
|04| [Four_Number_Sum](algoexpert.io/questions/Four_Number_Sum.md) | [Python](algoexpert.io/python/Four_Number_Sum.py) |
|05| [Subarray_Sort](algoexpert.io/questions/Subarray_Sort.md) | [Python](algoexpert.io/python/Subarray_Sort.py) |
|06| [Largest_Range](algoexpert.io/questions/Largest_Range.md) | [Python](algoexpert.io/python/Largest_Range.py) |
|07| [Min_Rewards](algoexpert.io/questions/Min_Rewards.md) | [Python](algoexpert.io/python/Min_Rewards.py) |
|08| [Zigzag_Traverse](algoexpert.io/questions/Zigzag_Traverse.md) | [Python](algoexpert.io/python/Zigzag_Traverse.py) |
|08| [Apartment_Hunting](algoexpert.io/questions/Apartment_Hunting.md) | [Python](algoexpert.io/python/Apartment_Hunting.py) |
|09| [Calendar_Matching](algoexpert.io/questions/Calendar_Matching.md) | [Python](algoexpert.io/python/Calendar_Matching.py) |
|10| [Spiral_Traverse](algoexpert.io/questions/Spiral_Traverse.md) | [Python](algoexpert.io/python/Spiral_Traverse.py) |
|11| [Monotonic_Array](algoexpert.io/questions/Monotonic_Array.md) | [Python](algoexpert.io/python/Monotonic_Array.py) |
|12| [Move_Element_To_End](algoexpert.io/questions/Move_Element_To_End.md) | [Python](algoexpert.io/python/Move_Element_To_End.py) |
|13| [Longest_Peak](algoexpert.io/questions/Longest_Peak.md) | [Python](algoexpert.io/python/Longest_Peak.py) |

</p>
</details>


### 2. Binary Search Tree

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [BST_Construction_Iterative](algoexpert.io/questions/BST_Construction_Iterative.md) | [Python](algoexpert.io/python/BST_Construction_Iterative.py)|
|02| [BST_Construction_Recursive](algoexpert.io/questions/BST_Construction.md) | [Python](algoexpert.io/python/BST_Construction_Recursive.py)|
|03| [Validate_BST](algoexpert.io/questions/Validate_BST.md) | [Python](algoexpert.io/python/Validate_BST.py)|
|04| [Find_Closest_Value_in_BST](algoexpert.io/questions/Find_Closest_Value_In_BST.md) | [Python](algoexpert.io/python/Find_Closest_Value_in_BST.py)|
|05| [BST_Traversal](algoexpert.io/questions/BST_Traversal.md) | [Python](algoexpert.io/python/BST_Traversal.py)|
|06| [Same_BSTs](algoexpert.io/questions/Same_BSTs.md) | [Python](algoexpert.io/python/Same_BSTs.py)|

</p>
</details>


### 3. Binary Tree

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Invert_Binary_Tree](algoexpert.io/questions/Invert_Binary_Tree.md) | [Python](algoexpert.io/python/Invert_Binary_Tree.py)|
|02| [Max_Path_Sum_In_Binary_Tree](algoexpert.io/questions/Max_Path_Sum_In_Binary_Tree.md) | [Python](algoexpert.io/python/Max_Path_Sum_In_Binary_Tree.py) |
|03| [Iterative_In-order_Traversal](algoexpert.io/questions/Iterative_In-order_Traversal.md) | [Python](algoexpert.io/python/Iterative_In-order_Traversal.py) |
|04| [Right_Sibling_Tree](algoexpert.io/questions/Right_Sibling_Tree.md) | [Python](algoexpert.io/python/Right_Sibling_Tree.py) |
|05| [Branch_Sums](algoexpert.io/questions/Branch_Sums.md) | [Python](algoexpert.io/python/Branch_Sums.py) |
|06| [Flatten_Binary_Tree](algoexpert.io/questions/Flatten_Binary_Tree.md) | [Python](algoexpert.io/python/Flatten_Binary_Tree.py) |

</p>
</details>


### 4. Dynamic Programming

<details><summary>Problem statement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Number_Of_Ways_To_Make_Changes](algoexpert.io/questions/Number_Of_Ways_To_Make_Change.md) | [Python](algoexpert.io/python/Number_Of_Ways_To_Make_Changes.py)|
|02| [Minimum_Number_Of_Coins_For_Change](algoexpert.io/questions/Min_Number_Of_Coins_For_Change.md) | [Python](algoexpert.io/python/Minimum_Number_Of_Coins_For_Change.py)|
|03| [Levenshtein_Distance](algoexpert.io/questions/Levenshtein_Distance.md) | [Python](algoexpert.io/python/Levenshtein_Distance.py)|
|04| [Min_Number_Of_Jumps](algoexpert.io/questions/Min_Number_Of_Jumps.md) | [Python](algoexpert.io/python/Min_Number_Of_Jumps.py) | [Video 1](https://www.youtube.com/watch?v=cETfFsSTGJI)|
|05| [Max_Sum_Increasing_Subsequence](algoexpert.io/questions/Max_Sum_Increasing_Subsequence.md) | [Python](algoexpert.io/python/Max_Sum_Increasing_Subsequence.py) |
|06| [Longest_Common_Subsequence](algoexpert.io/questions/Longest_Common_Subsequence.md) | [Python](algoexpert.io/python/Longest_Common_Subsequence.py) | [Video 1](https://www.youtube.com/watch?v=sSno9rV8Rhg) |
|07| [Water_Area](algoexpert.io/questions/Water_Area.md) | [Python](algoexpert.io/python/Water_Area.py) |
|08| [Knapsack_Problem](algoexpert.io/questions/Knapsack_Problem.md) | [Python](algoexpert.io/python/Knapsack_Problem.py) |
|09| [Disk_Stacking](algoexpert.io/questions/Disk_Stacking.md) | [Python](algoexpert.io/python/Disk_Stacking.py) |
|10| [Numbers_In_Pi](algoexpert.io/questions/Numbers_In_Pi.md) | [Python](algoexpert.io/python/Numbers_In_Pi.py) |
|11| [Maximum_Subset_Sum_With_No_Adjacent_Element](algoexpert.io/questions/Maximum_Subset_Sum_With_No_Adjacent_Element.md) | [Python](algoexpert.io/python/Maximum_Subset_Sum_With_No_Adjacent_Element.py) |
|12| [Max_Profit_With_K_Transactions](algoexpert.io/questions/Max_Profit_With_K_Transactions.md) | [Python](algoexpert.io/python/Max_Profit_With_K_Transactions.py) |
|13| [Palindrome_Partitioning_Min_Cuts](algoexpert.io/questions/Palindrome_Partitioning_Min_Cuts.md) | [Python](algoexpert.io/python/Palindrome_Partitioning_Min_Cuts.py) |
|14| [Longest_Increasing_Subsequence](algoexpert.io/questions/Longest_Increasing_Subsequence.md) | [Python](algoexpert.io/python/Longest_Increasing_Subsequence.py) | [Video 1](https://www.youtube.com/watch?v=fV-TF4OvZpk), [Video 2](https://www.youtube.com/watch?v=CE2b_-XfVDk), , [Video 3](https://www.hackerrank.com/challenges/longest-increasing-subsequent/problem)|
|15| [Longest_String_Chain](algoexpert.io/questions/Longest_String_Chain.md) | [Python](algoexpert.io/python/Longest_String_Chain.py) | --- |

</p>
</details>


### 5. Famous Algorithm

<details><summary>Problem statement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Kadane's_Algorithm](algoexpert.io/questions/Kadane's_Algorithm.md) | [Python](algoexpert.io/python/Kadane's_Algorithm.py)|
|02| [Topological_Sort](algoexpert.io/questions/Topological_Sort.md) | [Python](algoexpert.io/python/Topological_Sort.py) |
|03| [KMP_Algorithm](algoexpert.io/questions/KMP_Algorithm.md) | [Python](algoexpert.io/python/KMP_Algorithm.py) |

</p>
</details>


### 6. Graphs

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Youngest_Common_Ancestor](algoexpert.io/questions/Youngest_Common_Ancestor.md) | [Python](algoexpert.io/python/Youngest_Common_Ancestor.py)|
|02| [Single_Cycle_Check](algoexpert.io/questions/Single_Cycle_Check.md) | [Python](algoexpert.io/python/Single_Cycle_Check.py)|
|03| [River_Sizes](algoexpert.io/questions/River_Sizes.md) | [Python](algoexpert.io/python/River_Sizes.py)|
|04| [Depth_First_Search](algoexpert.io/questions/Depth-first_Search.md) | [Python](algoexpert.io/python/Depth_First_Search.py)|
|05| [Breadth_First_Search](algoexpert.io/questions/Breadth-first_Search.md) | [Python](algoexpert.io/python/Breadth_First_Search.py)|
|06| [Boggle_Board](algoexpert.io/questions/Boggle_Board.md) | [Python](algoexpert.io/python/Boggle_Board.py) |
|07| [Rectangle_Mania](algoexpert.io/questions/Rectangle_Mania.md) | [Python](algoexpert.io/python/Rectangle_Mania.py) |
|07| [Airport_Connections](algoexpert.io/questions/Airport_Connections.md) | [Python](algoexpert.io/python/Airport_Connections.py) |

</p>
</details>


### 7. Heaps

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Min_Heap_Construction](algoexpert.io/questions/Min_Heap_Construction.md) | [Python](algoexpert.io/python/Min_Heap_Construction.py) |[Video 1](https://www.youtube.com/watch?v=HqPJF2L5h9U)|
|02| [Continuous_Median](algoexpert.io/questions/Continuous_Median.md) | [Python](algoexpert.io/python/Continuous_Median.py) |[Video 1](https://www.youtube.com/watch?v=1CxyVdA_654), [Video 2](https://www.youtube.com/watch?v=VmogG01IjYc)|

</p>
</details>


### 8. Linked List

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Remove_Kth_Node_From_End](algoexpert.io/questions/Remove_Kth_Node_From_End.md) | [Python](algoexpert.io/python/Remove_Kth_Node_From_End.py)|
|02| [Linked_List_Construction](algoexpert.io/questions/Linked_List_Construction.md) | [Python](algoexpert.io/python/Linked_List_Construction.py)|
|03| [Find_Loop](algoexpert.io/questions/Find_Loop.md) | [Python](algoexpert.io/python/Find_Loop.py)|
|04| [Reverse_Linked_List](algoexpert.io/questions/Reverse_Linked_List.md) | [Python](algoexpert.io/python/Reverse_Linked_List.py)|
|05| [LRU_Cache](algoexpert.io/questions/LRU_Cache.md) | [Python](algoexpert.io/python/LRU_Cache.py)|
|06| [Merge_Linked_List](algoexpert.io/questions/Merge_Linked_List.md) | [Python](algoexpert.io/python/Merge_Linked_List.py)|

</p>
</details>


### 9. Recursion

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Powerset](algoexpert.io/questions/Powerset.md) | [Python](algoexpert.io/python/Powerset.py)|
|02| [Permutations](algoexpert.io/questions/Permutations.md) | [Python](algoexpert.io/python/Permutations.py)|
|03| [Nth_Fibonacci](algoexpert.io/questions/Nth_Fibonacci.md) | [Python](algoexpert.io/python/Nth_Fibonacci.py)|
|04| [Product_Sum](algoexpert.io/questions/Product_Sum.md) | [Python](algoexpert.io/python/Product_Sum.py) |
|05| [Lowest_Common_Manager](algoexpert.io/questions/Lowest_Common_Manager.md) | [Python](algoexpert.io/python/Lowest_Common_Manager.py) |
|06| [Number_Of_Possible_Binary_Tree_Topologies](algoexpert.io/questions/Number_Of_Binary_Tree_Topologies.md) | [Python](algoexpert.io/python/Number_Of_Possible_Binary_Tree_Topologies.py) |
|07| [Interweaving_Strings](algoexpert.io/questions/Interweaving_Strings.md) | [Python](algoexpert.io/python/Interweaving_Strings.py) |
|08| [Number_Of_Binary_Tree_Topologies](algoexpert.io/questions/Number_Of_Binary_Tree_Topologies.md) | [Python](algoexpert.io/python/Number_Of_Binary_Tree_Topologies.py) |

</p>
</details>


### 10. Searching

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Search_In_Sorted_Matrix](algoexpert.io/questions/Search_In_Sorted_Matrix.md) | [Python](algoexpert.io/python/Search_In_Sorted_Matrix.py)|
|02| [Find_Three_Largest_Number](algoexpert.io/questions/Find_Three_Largest_Numbers.md) | [Python](algoexpert.io/python/Find_Three_Largest_Number.py)|
|03| [Binary_Search](algoexpert.io/questions/Binary_Search.md) | [Python](algoexpert.io/python/Binary_Search.py)|
|04| [Shifted_Binary_Search](algoexpert.io/questions/Shifted_Binary_Search.md) | [Python](algoexpert.io/python/Shifted_Binary_Search.py)|
|05| [Search_For_Range](algoexpert.io/questions/Search_For_Range.md) | [Python](algoexpert.io/python/Search_For_Range.py)|
|06| [Quick_Select (Kth smallest/largest element)](algoexpert.io/questions/Quick_Select.md) | [Python](algoexpert.io/python/Quick_Select.py)|

</p>
</details>


### 11. Sorting

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Selection_Sort](algoexpert.io/questions/Selection_Sort.md) | [Python](algoexpert.io/python/Selection_Sort.py)|
|02| [Insertion_Sort](algoexpert.io/questions/Insertion_Sort.md) | [Python](algoexpert.io/python/Insertion_Sort.py)|
|03| [Bubble_Sort](algoexpert.io/questions/Bubble_Sort.md) | [Python](algoexpert.io/python/Bubble_Sort.py)|
|04| [Quick_Sort](algoexpert.io/questions/Quick_Sort.md) | [Python](algoexpert.io/python/Quick_Sort.py) | [Video 1](https://www.youtube.com/watch?v=uXBnyYuwPe8&t=302s)|
|05| [Heap_Sort](algoexpert.io/questions/Heap_Sort.md) | [Python](algoexpert.io/python/Heap_Sort.py) |
|06| [Merge_Sort](algoexpert.io/questions/Merge_Sort.md) | [Python](algoexpert.io/python/Merge_Sort.py) |

</p>
</details>


### 12. Stacks

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Balanced Bracket](algoexpert.io/questions/Balanced_Bracket.md)| [Python](algoexpert.io/python/Balanced_Bracket.py)|
|02| [Min_Max_Stack_Construction](algoexpert.io/questions/Min_Max_Stack_Construction.md) | [Python](algoexpert.io/python/Min_Max_Stack_Construction.py)|

</p>
</details>


### 13. String

<details><summary>Problem statement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Palindrom_Check](algoexpert.io/questions/Palindrome_Check.md) | [Python](algoexpert.io/python/Palindrom_Check.py)|
|02| [Longest_Palindromic_Substring](algoexpert.io/questions/Longest_Palindromic_Substring.md) | [Python](algoexpert.io/python/Longest_Palindromic_Substring.py)|
|03| [Caesar_Cipher_Encryptor](algoexpert.io/questions/Caesar_Cipher_Encryptor.md) | [Python](algoexpert.io/python/Caesar_Cipher_Encryptor.py)|
|04| [Longest_Substring_Without_Duplication](algoexpert.io/questions/Longest_Substring_Without_Duplication.md) | [Python](algoexpert.io/python/Longest_Substring_Without_Duplication.py)|
|05| [Underscorify_Substring](algoexpert.io/questions/Underscorify_Substring.md) | [Python](algoexpert.io/python/Underscorify_Substring.py)| --- | Hard | TODO: Check again. Difficult to analyse the space ad time complexity |
|06| [Pattern_Matcher](algoexpert.io/questions/Pattern_Matcher.md) | [Python](algoexpert.io/python/Pattern_Matcher.py)|
|07| [Smallest_Substring_Containing](algoexpert.io/questions/Smallest_Substring_Containing.md) | [Python](algoexpert.io/python/Smallest_Substring_Containing.py)|
|08| [Group_Anagrams](algoexpert.io/questions/Group_Anagrams.md) | [Python](algoexpert.io/python/Group_Anagrams.py)|

</p>
</details>


### 14. Tries

<details><summary>Problem sstatement from AlgoExpert.io with solutions and tutorials/videos</summary>
<p>

| #  | Title | Solution | Tutorial | Level | Remarks |
| --- | --- | --- | --- | --- | --- |
|01| [Suffix_Trie_Construction](algoexpert.io/questions/Suffix_Trie_Construction.md) | [Python](algoexpert.io/python/Suffix_Trie_Construction.py)|
|02| [Multi_String_Search](algoexpert.io/questions/Multi_String_Search.md) | [Python](algoexpert.io/python/Multi_String_Search.py)|

</p>
</details>


---

---


## References

<details><summary>Some helpful links, channels, tutorials, blogs.</summary>
<p>


### 1. Strategies
<details><summary></summary>
<p>

Check this **[Golden](https://tinyurl.com/uboo399)** posts first.

-   **[Comprehensive Data Structure and Algorithm Study Guide](https://tinyurl.com/uboo399)**

01. [How a Googler solves coding problems](https://blog.usejournal.com/how-a-googler-solves-coding-problems-ec5d59e73ec5)
02. [Nail Every Coding Interview by Becoming Asymmetrical](https://www.youtube.com/watch?v=-THCaZWggTk)
03. [How to get into FAANG](https://drive.google.com/drive/u/0/folders/1sIdNzi4mOQL_YsPF4HAw-JsDtUneHKiu)
04. [Preparing for Programming interview with Python](https://tinyurl.com/qsqda4b)
05. [The 30-minute guide to rocking your next coding interview](https://tinyurl.com/vbqlhko)
06. [Google Interview Part-1](https://tinyurl.com/w62ou5j) , [Google Interview Part-2](https://tinyurl.com/u69s6pe), [Google Interview Part-3](https://tinyurl.com/urv95zu), [Final Part](https://tinyurl.com/y5qtujdv)
07. [Amazon ও Google এ চাকরির সুযোগ পাওয়ার প্রস্তুতি পর্ব](https://github.com/sabir4063/my_preparation)
08. [How to use LeetCode effectively](https://www.youtube.com/watch?v=iGFnsuMeUQY)
09. [How to solve ANY interview question](https://www.youtube.com/watch?v=JB78__e1tlE&t=3s)
10. [How To Ace The Google Coding Interview - Complete Guide](https://tinyurl.com/ws2d4cr)
11. [Software Engineering Interviews: The Golden Path To Passing](https://tinyurl.com/vb77j83)
12. [A MUST READ](https://tinyurl.com/vzbn34s)
13. [10 Steps to Solving a Programming Problem](https://tinyurl.com/s663j6z)
14. [Preparing to Apply or Interview at Google - Youtue playlist](https://tinyurl.com/yx7wceza)
15. [Amazon ও Google এ চাকরির সুযোগ পাওয়ার প্রস্তুতি পর্ব](https://tinyurl.com/t7dnzs8)
16. [Coding Interviews](https://tinyurl.com/rofaykt)
17. **[Tech Interview Handbook](https://tinyurl.com/rofaykt)**
18. [Complete Introduction to the 30 Most Essential Data Structures & Algorithms](https://tinyurl.com/y6e8klgj)
19. [How to Solve Any Code Challenge or Algorithm](https://tinyurl.com/y3staja5)

</p>
</details>


### 2. Courses/Books
<details><summary></summary>
<p>

01. [Data Structures in Python: An Interview Refresher](https://www.educative.io/courses/data-structures-in-python-an-interview-refresher)
02. [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview)
03. [Grokking Dynamic Programming Patterns for Coding Interviews](https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews)
04. [Coding Interview Class](https://codinginterviewclass.com/)
05. [Competitive Programmer’s Handbook](https://cses.fi/book/book.pdf)

</p>
</details>


### 3. Swift
<details><summary></summary>
<p>

01. []()

</p>
</details>


### 4. Python
<details><summary></summary>
<p>

Learn the following modules by heart. Just knowing all of the following items will made most of the problem one-liners.
01. [itertools - Functions creating iterators for efficient looping](https://docs.python.org/3/library/itertools.html) - They will help you, more often than you think
    -   [Iterators and Iterables - What Are They and How Do They Work?](https://www.youtube.com/watch?v=jTYiNjvnHZY)
    -   [Itertools Module - Iterator Functions for Efficient Looping](https://www.youtube.com/watch?v=Qu3dThVy6KQ)
02. [collections - High-performance container datatypes](https://docs.python.org/3/library/collections.html) - Believe me, this is pretty awesome
03. [heapq - Heap queue algorithm](https://docs.python.org/3/library/heapq.html) - Obviously, we don't have to hand-code heaps anymore
04. [bisect - Array bisection algorithm](https://docs.python.org/3/library/bisect.html) - Binary Search, simplified
05. [Set](https://docs.python.org/3/library/stdtypes.html#set)
06. [Dict](https://docs.python.org/3/library/stdtypes.html#mapping-types-dict) - Now on, hash Tables are fun to work with
07. [Sorting](https://wiki.python.org/moin/HowTo/Sorting) - Don't participate in competitions without reading this completely.
08.	Start using lambda extensively
    -   [Lambda Expressions & Anonymous Functions](https://tinyurl.com/t9aptuz)
    -   [Map, Filter, and Reduce Functions](https://tinyurl.com/rdn53js)
    -   [Lambda, filter, reduce and map](https://www.python-course.eu/python3_lambda.php)
09.	[functools](https://docs.python.org/3/library/functools.html)
10. Apart from these, all the builtin methods of default containers.
    -   [Strings and Character Data in Python](https://realpython.com/python-strings/)
11. [Understanding slice notation](https://stackoverflow.com/questions/509211/understanding-slice-notation) - you will need/use it more than you can imagine
12. [Magic Methods](https://tinyurl.com/ydhyrgtq)

</p>
</details>


### 5. Channels
<details><summary></summary>
<p>

01. [Tushar Roy - Coding Made Simple](https://www.youtube.com/channel/UCZLJf_R2sWyUtXSKiKlyvAw)
02. [Back To Back SWE](https://www.youtube.com/channel/UCmJz2DV1a3yfgrR7GqRtUUA)
03. [William Fiset](https://www.youtube.com/user/purpongie/featured)
04. [Irfan Baqui](https://www.youtube.com/channel/UCYvQTh9aUgPZmVH0wNHFa1A)

</p>
</details>


### 6. Tree (Binary Tree, BST, AVL, Red-Black, B-Tree, B+ Tree, Segment Tree, Interval Tree, Range Tree, BIT, N-aray Tree, Trie etc)
<details><summary></summary>
<p>

#### Tree Basics (or not so basics)
01. [Binary Tree playlist - Tushar Roy - Coding Made Simple](https://tinyurl.com/txeffh4)
02. [8 Useful Tree Data Structures Worth Knowing](https://tinyurl.com/t4f8mxg)
03. [Segment Tree Range Minimum Query](https://tinyurl.com/t3eltjb)
04. [Exploring Segment Trees](https://tinyurl.com/uqfgfyn)
05. [AVL Tree - Insertion and Rotations](https://tinyurl.com/qmtgtoc)
06. [B Trees and B+ Trees. How they are useful in Databases](https://tinyurl.com/v6n9fkm)
07. [Red Black Tree Insertion](https://tinyurl.com/vb4kf76) ---  NOTE: Partho, read this
08. [Fenwick Tree or Binary Indexed Tree](https://tinyurl.com/ulq6shu)
09. [Fenwick Tree ( Binary Index Tree )](https://tinyurl.com/u95w7ud) ---  NOTE: Partho, read this

#### Binary Indexed Tree Vs Fenwick Tree 
01. [Fenwick Tree or Binary Indexed Tree - youtube](https://www.youtube.com/watch?v=CWDQJGaN1gY)
02. [Binary Indexed Tree or Fenwick Tree - geeksforgeeks](https://www.geeksforgeeks.org/binary-indexed-tree-or-fenwick-tree-2/)
03. [Binary Indexed Tree or Fenwick Tree - topcoder](https://www.topcoder.com/community/competitive-programming/tutorials/binary-indexed-trees/)
04. [Segment Tree Range Minimum Query - youtube](https://www.youtube.com/watch?v=ZBHKZF5w4YU)
05. [Segment Tree | Set 1 \(Sum of given range\) - geeksforgeeks](https://www.geeksforgeeks.org/segment-tree-set-1-sum-of-given-range/)
06. [Practical Data Structures for Frontend Applications: When to use Segment Trees](https://hackernoon.com/practical-data-structures-for-frontend-applications-when-to-use-segment-trees-9c7cdb7c2819)
07. [What is the difference between a binary indexed tree and a segment tree?](https://codeforces.com/blog/entry/6847)
08. [How does one decide when to use a Segment Tree or Fenwick Tree?](https://www.quora.com/How-does-one-decide-when-to-use-a-Segment-Tree-or-Fenwick-Tree)
09. [What are the differences between segment trees, interval trees, binary indexed trees and range trees?](https://stackoverflow.com/questions/17466218/what-are-the-differences-between-segment-trees-interval-trees-binary-indexed-t)
10. [Height, Depth and Level of a Tree](https://tinyurl.com/zvm773n)
11. [What is the difference between tree depth and height?](https://tinyurl.com/vfnvg8q)

#### Self Balancing Binary Search Trees
01. [Self-balancing binary search tree](https://tinyurl.com/zlq297z)
02. [Self-Balancing-Binary-Search-Trees (Comparisons)](https://tinyurl.com/rq23p56)
03. [Self-Balancing Binary Search Trees 101](https://tinyurl.com/rtjr996)
04. [10.1 AVL Tree - Insertion and Rotations](https://tinyurl.com/qmtgtoc)
05. [Red Black tree | Introduction to Red Black trees | Data structure](https://tinyurl.com/urrwf5m)
06. [Red Black Tree Insertion](https://tinyurl.com/wd2z45k)
07. [Title](https://tinyurl.com/txeffh4)
08. [Title](https://tinyurl.com/txeffh4)
09. [Title](https://tinyurl.com/txeffh4)

#### Augmented Binary Search Trees(Interval BS Vs Segment Tree Vs Range Tree)
01. [Interval Search Trees - video](https://tinyurl.com/s9xl3p8)
02. [Interval Tree](https://tinyurl.com/u8fnct9)
03. [What are the differences between segment trees, interval trees, binary indexed trees and range trees?](https://tinyurl.com/qn3vwpz)
04. [Interval Trees: One step beyond BST](https://tinyurl.com/v9k5ckt)
05. [Title](https://tinyurl.com/txeffh4)
06. [Title](https://tinyurl.com/txeffh4)


</p>
</details>


### 7. Graph(Dijkstra, Union Find, Kruskal, Prim's, Minimum Spanning Tree, Topological Ordering...etc)
<details><summary></summary>
<p>

01. [Graph Theory Playlist](https://tinyurl.com/rfgy88b)
02. [Graph Theory Playlist 2](https://tinyurl.com/yfa57nc5)
03. [Union Find \[Disjoint Set\] Playlist](https://tinyurl.com/srz7uua)
04. [Disjoint Sets Data Structure - Weighted Union and Collapsing Find](https://www.youtube.com/watch?v=wU6udHRIkcc)
05. [Codinginterviewclass.com](https://tinyurl.com/wpgl4nt)
06. Single(Di-Bel)/All(Flo) Source Shortest Path Algorithms: Dijkstra ([1](https://tinyurl.com/r8omw8l), [2](https://tinyurl.com/sscslz7)), Bellman-Ford([1](https://tinyurl.com/tghcsmz), [2](https://tinyurl.com/rdcax5b)), Floyd–Warshall([1](https://tinyurl.com/vsp4ulb), [2](https://tinyurl.com/s5wjb5a))
07. Dijkstra’s Algorithm Vs Bellman-Ford Algorithm Vs Floyd Warshall Algorithm ( [1](https://tinyurl.com/vxwc2je), [2](https://tinyurl.com/s6vff87), [3](https://tinyurl.com/s5o57nz) )
08. Minimum Spanning Tree Algorithm: Prim's ( [1](https://tinyurl.com/vgbgdl2), [2](https://tinyurl.com/yecuqtty), Kruskal's ([1](https://tinyurl.com/vgbgdl2), [2](https://tinyurl.com/yhxpvpkn) )
09. Kruskal's algorithm Vs Prim's algorithm ( [1](https://qr.ae/TSEPGc), [2](https://tinyurl.com/yz6399ck), [3](https://tinyurl.com/yz3q7vox) )
10. [Tushar Roy - Coding Made Simple - Grapy Algorithm Playlist](https://tinyurl.com/y7qeb9ae)

</p>
</details>


### 8. Bit Manipulation
<details><summary></summary>
<p>

01. [Bit Manipulation - youtube](https://www.youtube.com/watch?v=7jkIUgLC29I)
02. [Conversion of Binary, Octal and Hexadecimal Numbers](http://www.cs.ucr.edu/~ehwang/courses/cs120a/00winter/binary.pdf)
03. [Your guide to Bit Manipulation](https://codeburst.io/your-guide-to-bit-manipulation-48e7692f314a)
04. [Python Bitwise Operators](https://www.journaldev.com/26737/python-bitwise-operators)
05. [Add Two Numbers Without The "+" Sign (Bit Shifting Basics)](https://www.youtube.com/watch?v=qq64FrA2UXQ)
06. [Binary Arithmetic](https://www.electrical4u.com/binary-arithmetic/)
07. [1’s and 2’s complement of a Binary Number](https://www.geeksforgeeks.org/1s-2s-complement-binary-number/)
08. [What is “2's Complement”?](https://stackoverflow.com/questions/1049722/what-is-2s-complement)
09. [Bits manipulation \(Important tactics\)](https://www.geeksforgeeks.org/bits-manipulation-important-tactics/)
10. [Bit Manipulation](https://medium.com/@hitherejoe/bit-manipulation-b13b94e70f3b)
11. [Python Bitwise Operators](https://www.concretepage.com/python/python-bitwise-operators)
12. [XOR - The magical bitwise operator](https://hackernoon.com/xor-the-magical-bit-wise-operator-24d3012ed821)
13. [A summary: how to use bit manipulation to solve problems easily and efficiently - leetcode](https://leetcode.com/problems/sum-of-two-integers/discuss/84278/A-summary:-how-to-use-bit-manipulation-to-solve-problems-easily-and-efficiently)
14. [Bit Manipulation 4% of LeetCode Problems](https://medium.com/algorithms-and-leetcode/bit-manipulation-4-of-leetcode-problems-e67db88598d1)
15. [Coding Interview University - Bitwise operations](https://github.com/jwasham/coding-interview-university#bitwise-operations)
16. [Mask (computing)](https://en.wikipedia.org/wiki/Mask_(computing))
17. [What is Bit Masking?](https://stackoverflow.com/questions/10493411/what-is-bit-masking)
18. [Understanding Bit masks](https://abdulapopoola.com/2016/05/30/understanding-bit-masks/)
19. [Bitmasks: A very esoteric (and impractical) way of managing booleans](https://dev.to/somedood/bitmasks-a-very-esoteric-and-impractical-way-of-managing-booleans-1hlf)
20. [Hacker’s Delight - BOOK](http://93.174.95.29/_ads/34DCB990FEBE54887C83E5F9534F1957)
21. [Bitwise operators — Facts and Hacks](https://medium.com/@shashankmohabia/bitwise-operators-facts-and-hacks-903ca516f28c)
22. [Signed number representations](https://en.wikipedia.org/wiki/Signed_number_representations)
23. **[Vid 1](https://www.youtube.com/watch?v=NLKQEOgBAnw), [Vid 2](https://www.youtube.com/watch?v=qq64FrA2UXQ&feature=emb_title)**

</p>
</details>


### 9. Dynamic Programming
<details><summary></summary>
<p>

01. [The FAST method](https://www.byte-by-byte.com/fast-method/)
02. [A good approach to attack DP](https://leetcode.com/articles/jump-game/)
03. [Tabulation vs Memoization](https://www.geeksforgeeks.org/tabulation-vs-memoization/)
04. [Memoization vs Tabulation](https://elvrsn.blogspot.com/2015/02/memoization-vs-tabulation.html)
05. [1D Subproblems vs. 2D Subproblems](https://tinyurl.com/yfopxwjq)
06. [Memoization (1D, 2D and 3D)](https://tinyurl.com/ydw8sy6l)
07. [Introduction to Multi-dimensional Dynamic Programming](https://tinyurl.com/ydwjq3rl)
08. **[Dynamic Programming Patterns - MUST READ](https://tinyurl.com/tenzf8b)**
09. **[My experience and notes for learning DP](https://tinyurl.com/rjg4vtg)**
10. **[DP IS EASY! 5 Steps to Think Through DP Questions](https://tinyurl.com/vmmaxbe)**
11. **[Dynamic Programming Patterns](https://tinyurl.com/tenzf8b)**

</p>
</details>


### 10. Greedy
<details><summary></summary>
<p>

01. [Greedy Method - Introduction](https://www.youtube.com/watch?v=ARvQcqJ_-NY&t=2s)
02. [Introduction to Greedy Method](https://www.youtube.com/watch?v=xpNWJD24fPA)
03. [Introduction to Greedy Algorithms | GeeksforGeeks](https://www.youtube.com/watch?v=HzeK7g8cD0Y)
04. [Basics of Greedy Algorithms](https://www.hackerearth.com/practice/algorithms/greedy/basics-of-greedy-algorithms/tutorial/)
05. [When to try greedy algorithms on problems?](https://codeforces.com/blog/entry/14032)
06. [How to spot a “greedy” algorithm?](https://stackoverflow.com/questions/7887487/how-to-spot-a-greedy-algorithm) 

</p>
</details>


### 11. DP VS Greedy
<details><summary></summary>
<p>

01. [Greedy Algorithm and Dynamic Programming](https://medium.com/cracking-the-data-science-interview/greedy-algorithm-and-dynamic-programming-a8c019928405)
02. [Greedy approach vs Dynamic programming](https://www.geeksforgeeks.org/greedy-approach-vs-dynamic-programming/)
03. [What is the difference between dynamic programming and greedy approach?](https://stackoverflow.com/questions/16690249/what-is-the-difference-between-dynamic-programming-and-greedy-approach)

</p>
</details>


### 12. Backtracking
<details><summary></summary>
<p>

01. [Backtracking - wiki](https://en.wikipedia.org/wiki/Backtracking)
02. [Backtracking | Introduction](https://www.geeksforgeeks.org/backtracking-introduction/)
03. [Introduction to Backtracking - Brute Force Approach](https://www.youtube.com/watch?v=DKCbsiDBN6c)
04. [Branch and Bound Introduction](https://www.youtube.com/watch?v=3RBNPc0_Q6g)
05. [The Backtracking Blueprint: The Legendary 3 Keys To Backtracking Algorithms](https://www.youtube.com/watch?v=Zq4upTEaQyM)
06. [Backtracking explained](https://medium.com/@andreaiacono/backtracking-explained-7450d6ef9e1a)
07. [Foundation of algorithms - Chapter 5 (Backtracking)  notes](https://www.cpp.edu/~ftang/courses/CS331/notes/backtracking.pdf)
08. [Backtracking Search Algorithms](https://cs.uwaterloo.ca/~vanbeek/Publications/survey06.pdf)

</p>
</details>


### 13. Recursion
<details><summary></summary>
<p>

01. [Learning to think with recursion, part 1](https://medium.com/@daniel.oliver.king/getting-started-with-recursion-f89f57c5b60e)
02. [Learning to think with recursion, part 2](https://medium.com/@daniel.oliver.king/learning-to-think-with-recursion-part-2-887bd4c41274)
03. [What makes a data structure recursive?](https://stackoverflow.com/questions/45761182/what-makes-a-data-structure-recursive)
04. [Binary Tree as a Recursive Data Structure](https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/RecursiveDS.html)
05. [Recursion Visualizer - use Viz Mode](http://www.codeskulptor.org/viz/index.html)
06. [Thinking Recursively in Python](https://realpython.com/python-thinking-recursively/)
07. [Breaking out of a recursive function?](https://stackoverflow.com/questions/10544513/breaking-out-of-a-recursive-function)
08. [Why does recursion return the first call in the stack and not the last?](https://softwareengineering.stackexchange.com/questions/333247/why-does-recursion-return-the-first-call-in-the-stack-and-not-the-last)

</p>
</details>


### 14. Game Theory
<details><summary></summary>
<p>

01. [Intuition for Solving a MiniMax Problems](https://tinyurl.com/ryxxott)
02. [Game theory — Minimax](https://tinyurl.com/qtfn9jl)
03. [How to make your Tic Tac Toe game unbeatable by using the minimax algorithm](https://tinyurl.com/t9tedyf)

</p>
</details>

### 15. Few special DS
<details><summary></summary>
<p>

01. [Monotonic Queue Explained with LeetCode Problems](https://tinyurl.com/rn7rsnf)


</p>
</details>



</p>
</details>









<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[last-commit-shield]: https://img.shields.io/github/last-commit/partho-maple/coding-interview-gym?style=flat
[last-commit-url]: https://github.com/partho-maple/coding-interview-gym/commits/master
[repo-size-shield]: https://img.shields.io/github/repo-size/partho-maple/coding-interview-gym?style=flat
[repo-size-url]: https://github.com/partho-maple/coding-interview-gym

[contributors-shield]: https://img.shields.io/github/contributors/partho-maple/coding-interview-gym.svg?style=flat
[contributors-url]: https://github.com/partho-maple/coding-interview-gym/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/partho-maple/coding-interview-gym.svg?style=flat
[forks-url]: https://github.com/partho-maple/coding-interview-gym/network/members
[stars-shield]: https://img.shields.io/github/stars/partho-maple/coding-interview-gym.svg?style=flat
[stars-url]: https://github.com/partho-maple/coding-interview-gym/stargazers
[issues-shield]: https://img.shields.io/github/issues/partho-maple/coding-interview-gym.svg?style=flat
[issues-url]: https://github.com/partho-maple/coding-interview-gym/issues
[license-shield]: https://img.shields.io/github/license/partho-maple/coding-interview-gym.svg?style=flat
[license-url]: https://github.com/partho-maple/coding-interview-gym/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg??style=flat&logo=linkedin&colorB=555
[linkedin-url]: https://www.linkedin.com/in/partho-biswas/
[product-screenshot]: images/screenshot.png
