Leetcode problems and solutions for improving problem solving skills and interview preparation
| # | Title | Solution | Time | Space | Difficulty | Tag | Comment |
|---|---|---|---|---|---|---|---|
| 704 | Binary Search | Python | O(logN) | O(1) | Easy | Array, Binary Search | |
| 278 | First Bad Version | Python Java | O(logN) | O(n) | Easy | Binary Search | Time limit exceeds in few solution |
| 35 | Search Insert Position | Python Java | O(n) | O(1) | Easy | Array, Binary Search | |
| 977 | Squares of a Sorted Array | Python Java | O(n) | O(1) | Easy | Array, Two pointers, Sorting | |
| 189 | Rotate Array | Python Java | O(n) | O(n) | Medium | Array, Math, Two pointers | |
| 283 | Move Zeroes | Python Java | O(n) | O(1) | Easy | Array, Two pointers | |
| 167 | Two Sum II - Input Array Is Sorted | Python Java | O(n) | O(1) | Medium | Array, Two pointers, Binary Search | |
| 344 | Reverse String | Python Java | O(n) | O(1) | Easy | Two pointers | |
| 557 | Reverse Words in a String III | Python Java | O(n) | O(1) | Easy | Two pointers, String, Recursion | |
| 876 | Middle of the Linked List | Python Java | O(n) | O(n) | Easy | Linked List, Two Pointers | |
| 19 | Remove Nth Node From End of List | Python Java | O(n) | O(n) | Medium | Linked List, Two Pointers | |
| 3 | Longest Substring Without Repeating Characters | Python Java | O(n) | O(1) | Medium | Hash Table, String, Sliding Window | |
| 567 | Permutation in String | Python Java | O(n) | O(1) | Medium | Hash Table, Two Pointers, String, Sliding Window | |
| 733 | Flood Fill | Python Java | O(n)/O(mn) | O(n) | Easy | Array, Depth-First Search | |
| 695 | Max Area of Island | Python Java | O(R∗C) | O(R∗C) | Medium | Array, Depth-First Search | |
| 617 | Merge Two Binary Trees | Python Java | O(n) | O(n) | Easy | Tree, Depth-First Search | |
| 116 | Populating Next Right Pointers in Each Node | Python Java | O(n) | O(n) | Medium | Linked List, Tree | |
| 542 | 01 Matrix | Python Java | O(mn) | O(1) | Medium | Array, Dynamic Programming | |
| 994 | Rotting Oranges | Python Java | O(mn) | O(mn) | Medium | Array, Breadth-First Search, Matrix | |
| 21 | Merge Two Sorted Lists | Python Java | O(n) | O(1) | Easy | Linked List, Recursion | |
| 206 | Reverse Linked List | Python Java | O(n) | O(1) | Easy | Linked List, Recursion | |
| 77 | Combinations | Python Java | O(2 * K * C(N, K)) | O(k) | Medium | Array, Backtracking | |
| 46 | Permutations | Python Java | O(n!) | O(n!) | Medium | Array, Backtracking | |
| 784 | Letter Case Permutation | Python Java | O(2^n) | O(n) | Medium | String, Backtracking | |
| 70 | Climbing Stairs | Python Java | O(logn)/O(n) | O(1) | Easy | Math, Dynamic Programming | |
| 198 | House Robber | Python Java | O(n) | O(1) | Medium | Array, Dynamic Programming | |
| 120 | Triangle | Python Java | O(n^2) | O(1) | Medium | Array, Dynamic Programming | |
| 231 | Power of Two | Python Java | O(1) | O(1) | Easy | Math, Bit Manipulation, Recursion | |
| 191 | Number of 1 Bits | Python Java | O(log2n) | O(1) | Easy | Bit Manipulation | |
| 190 | Reverse Bits | Python Java | O(1) | O(1) | Easy | Divide and Conquer, Bit Manipulation | |
| 136 | Single Number | Python Java | O(n) | O(1) | Easy | Array, Bit Manipulation |
| # | Title | Solution | Time | Space | Difficulty | Tag | Comment |
|---|---|---|---|---|---|---|---|
| 1 | Two Sum | Python Java | O(n) | O(n) | Easy | Brute force, Hash table | |
| 1 | Add Two Numbers | Python Java | O(max(m,n)) m,n are length of input | O(max(m,n)) | Medium | Linked list | |
| 3 | Longest Substring Without Repeating Characters | Python Java | O(n) | O(1) | Medium | Hash Table | |
| 4 | Median of Two Sorted Arrays | Python Java | O(m+n) | O(n) | Hard | Recursive/Dynamic | |
| 66 | Plus One | Python Java | O(n) | O(n) | Easy | Binary | |
| 13 | Roman to Integer | Python Java | O(n) | O(1) | Easy | ||
| 14 | Longest Common Prefix | Python Java | O(S) | O(S) | Easy |