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 |