Problem statements and solutions(in JAVA) of 31 days May Coding challenge by Leetcode
| # | Problem | Algorithm | Data Structure | Time Complexity | Space Complexity |
|---|---|---|---|---|---|
| 1 | First Bad Version - Code | Binary Search | O(logn) | O(1) | |
| 2 | Jewels and Stones - Code | String Operation | String | O(n) | O(1) |
| 3 | Ransom Note - Code | Frequency Array | Array | O(n) | O(1) |
| 4 | Number Complement - Code | Java Decimal-to-Binary | Array | O(logn) | O(1) |
| 5 | First Unique Character in a String - Code | Frequency Array | Array | O(n) | O(1) |
| 6 | Majority Element - Code | Moore's Voting Algorithm | Array | O(n) | O(1) |
| 7 | Cousins in Binary Tree - Code | Level Order Traversal | Binary Tree | O(n) | O(n) |
| 8 | Check If It Is a Straight Line - Code | Array Traversal | Array | O(n) | O(1) |
| 9 | Valid Perfect Square - Code | Number theory | O(n) | O(1) | |
| 10 | Find the Town Judge - Code | Frequency Array | Array | O(matrix length) | O(1) |
| 11 | Flood Fill - Code | DFS | Graph | O(rows * cols) | O(rows * cols) |
| 12 | Single Element in a Sorted Array - Code | Binary Search | Array | O(logn) | O(1) |
| 13 | Remove K Digits - Code | String Manipulation | String | O(k * n) | O(1) |
| 14 | Implement Trie (Prefix Tree) - Code | Trie | Trie | O(key_length) | O(26 * key_length * N) where N is number of keys in Trie |
| 15 | Maximum Sum Circular Subarray - Code | Kadane's Algorithm | Array | O(n) | O(1) |
| 16 | Odd Even Linked List - Code | LinkedList Manipulation | LinkedList | O(n) | O(1) |
| 17 | Find All Anagrams in a String - Code | Modified Rabin-Karp | String | O(n) | O(1) |
| 18 | Permutation in String - Code | Modified Rabin-Karp | String | O(n) | O(1) |
| 19 | Online Stock Span - Code | Stack | Stack | O(n) | O(n) |
| 20 | Kth Smallest Element in a BST - Code | Inorder traversal | BST | O(n) | O(n) |
| 21 | Count Square Submatrices with All Ones - Code | DP | Matrix | O(m*n) | O(m*n) |
| 22 | Sort Characters By Frequency - Code | Frequency Array | TreeMap | O(n) | O(n) |
| 23 | Interval List Intersections - Code | Merge Intervals | Array | O(m+n) | O(m+n) |
| 24 | Construct Binary Search Tree from Preorder Traversal - Code | Construct BST | BST | O(n) | O(1) |
| 25 | Uncrossed Lines - Code | DP-LCS | Array | O(m*n) | O(m*n) |
| 26 | Contiguous Array - Code | DP | HashMap | O(n) | O(n) |
| 27 | Possible Bipartition - Code | DFS | HashMap | O(n+length of dislikes) | O(n+length of dislikes) |
| 28 | Counting Bits - Code | DP | Array | O(n) | O(n) |
| 29 | Course Schedule - Code | Topological Sorting | Graph | O(v+e) | O(v+e) |
| 30 | K Closest Points to Origin - Code | Priority Queue | Priority Queue | O(nlogn) | O(n) |
| 31 | Edit Distance - Code | DP | Array | O(n^2) | O(n^2) |