| Problem Name | Link | Approach | Code |
|---|---|---|---|
| 3 Sum Closest | LeetCode | Youtube | Java C++ |
| Time Based Key Value Store | LeetCode | Youtube Medium |
Java Python |
| Longest Common Substring | GFG | Youtube | Java |
| House Robber II | LeetCode | Youtube | Java |
| Design Hashmap | LeetCode | Youtube | C++ |
| Minimum Swaps To Make Sequences Increasing | LeetCode | Youtube | Java C++ |
| Find Kth Bit in Nth Binary String | LeetCode | Youtube | Java |
| Set Matrix Zeros | LeetCode | Youtube | Java |
| Generate Parentheses | LeetCode | YouTube | C++ Java |
| Generate Subsets | LeetCode | YouTube | C++ |
| Generate Subsets using Bit-Masking | LeetCode | YouTube | C++ |
| Serialize and Deserialize BST | Leetcode | YouTube | C++ |
| Construct Binary Search Tree from Preorder Traversal | LeetCode | YouTube | C++ |
| First Unique Character in a String | LeetCode | YouTube | Java |
| Trapping Rain Water | LeetCode | YouTube | C++ |
| Interleaving Strings | LeetCode | YouTube | Python |
| Group Anagrams | LeetCode | YouTube | Java |
| Binary Tree Right Side View | LeetCode | YouTube | C++ |
| Kadane's Algorithm | GFG | YouTube | Python |
| Implementing Dijkstra Algorithm | GFG | YouTube | Python |
| Container With Most Water | LeetCode | YouTube | Java |
| Zigzag Conversion | LeetCode | YouTube | Java |
| Integer to Roman | LeetCode | YouTube | Java |
| Palindromic Partitioning | GFG | YouTube | Python |
| Alien Dictionary | GFG | YouTube | Python |
| String To Integer | GFG | YouTube | Java |
| Maximum Length of a Concatenated String with Unique Characters | LeetCode | YouTube | Java |
| Sum of k smallest elements in BST | GFG | YouTube | Python |
| Regular Expression Matching | LeetCode | YouTube | Java |
| Longest Valid Parentheses | LeetCode | YouTube | Java |
| Rotate Image | LeetCode | YouTube | Java |
| Substring with concatenation of all words | LeetCode | YouTube | Java |
| Largest rectangular sub-matrix having sum divisible by k | GFG | YouTube | Python |
| Sum of Subarray Minimums | LeetCode | Youtube | C++ |
| Trapping Rain Water | LeetCode | Youtube | C++ |
| Next Greater Element III | LeetCode | Youtube | C++ |
| Largest rectangular sub-matrix having sum divisible by k | GFG | YouTube | Python |
| Word Break | LeetCode | Youtube | C++ |
| Combination Sum III | LeetCode | Youtube | C++ |
| Remove Nth Node From End of List | LeetCode | Youtube | C++ |
| Next Permutation | LeetCode | Youtube | C++ |
| Spiral Matrix | LeetCode | Youtube | C++ |
| Sort Colors | LeetCode | Youtube | C++ |
| Odd Even Linked List | LeetCode | Youtube | C++ |
| Add Two Numbers II | LeetCode | Youtube | C++ |
| Search in Rotated Sorted Array | LeetCode | Youtube | C++ |
| Linked List Cycle II | LeetCode | Youtube | [C++](./codes/cpp/LinkedListCycle2.cpp |
| Copy List with Random Pointer | LeetCode | Youtube | C++ |
| Remove Nth Node From End of List | LeetCode | Youtube | C++ |
| Wiggle Subsequence | LeetCode | Youtube | Python |
| Design Linked List | LeetCode | Youtube | Python |
| Flatten Binary Tree to Linked List | LeetCode | Youtube | Python |
| Longest Palindromic Subsequence | LeetCode | Youtube | C++ |
| Shortest Common Supersequence | LeetCode | Youtube | C++ |
| Partition Equal Subset Sum | LeetCode | Youtube | C++ |
| Target Sum | LeetCode | Youtube | C++ |
- C++ STL (Most Useful for Competitive Programming)
- Arrays
- Searching and Sorting
- Hashing
- Strings
- Recursion and Backtracking
- Bit Manipulation
- Linked List
- Stack and Queues
- Dynamic Programming
- Data Structures and Algorithms
- Algorithms-Robert Sedgewick
- Introduction to Algorithms-Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest,Clifford Stein
- Data Structures and Algorithm made easy-Narasimha Karumanchi
- Data Structures and Algorithms in Java-Robert Lafore
- Advanced Data Structures-Peter Brass
- Grokking Algorithms-Aditya Y. Bhargava
- Problem Solving with Algorithms and Data Structures-Brad Miller,David Ranum