/algorithms-solutions

Solutions for most common algorithms. Issues are from Leetcode/Codewars with explanations written in Java.

Primary LanguageJava

🧠 📚 Algorithms-Solutions

  • Solved Solutions from leetcode ant etc.

Helping welcome! Thanks!

📌 notation keys::

  • 🍏 - easy;
  • 🍊 - medium;
  • 🍎 - hard;
  • ⭕️(1), ⭕️log(N), ⭕️(N^2)... - Big O notations;
  • [✍🏻] - in progress;
  • [🙇🏻‍♂️] - hard to solve;
  • [] - the solution is not optimal;
  • [✔️] - done;
  • [🆗] - Test passed Ok;

Leetcode's Problems by Skills:


Arrays

Arrays SubSkills Lvl Complexity: Time , Space Solved Problems
Elements Sum 🍏 ⭕️(N^2), 💾 ⭕️(N) 1. Two Sum
Duplicates Remove 🍏 ⭕️(N), 💾 ⭕️(1) 26. Remove Duplicates from Sorted Array
Element Search 🍏 ⭕️(N), 💾 ⭕️(1) 35. Search Insert Position
Recursion, Math 🍏 ⭕️(N^2), 💾 ⭕️(N) 66. Plus One
Elements Sort 🍏 ⭕️(N^2), 💾 ⭕️(1) 88. Merge Sorted Array
Elements Memoization 🍏 ⭕️(N), 💾 ⭕️(1) 121. Best Time to Buy and Sell Stock
Elements Move 🍏 ⭕️(N), 💾 ⭕️(1) 283. Move Zeroes
String 🍏 ⭕️(N^2), 💾 ⭕️(N) 944. Delete Columns To Make Sorted
Elements Sort , Math 🍏 ⭕️(N^2), 💾 ⭕️(1) 977. Squares of a sorted Array
Element Two Pointers 🍊 ⭕️(N), 💾 ⭕️(1) 11. Container with Most Water
Permutations 🍊 ⭕️(N^2), 💾 ⭕️(1) 31. Next Permutation
Backtracking 🍊 ⭕️(N^2), 💾 ⭕️(N) 46. Permutations
Matrix Operations 🍊 ⭕️(N^2), 💾 ⭕️(1) 48. Rotate Image
Elements Math 🍊 ⭕️(N), 💾 ⭕️(1) 53. Maximum Subarray
Elements Sort 🍊 ⭕️(N^2), 💾 ⭕️(N^2) 56. Merge Intervals
Greedy 🍊 ⭕️(N), 💾 ⭕️(1) 134. Gas Station
Two Pointers 🍊 ⭕️(N), 💾 ⭕️(N) 167. Two Sum II
Two Pointers 🍊 ⭕️(N), 💾 ⭕️(N) 189. Rotate Array
DP 🍊 ⭕️(N), 💾 ⭕️(1) 198. House Robber
Matrix 🍊 ⭕️(N^2), 💾 ⭕️(N^2) 200. Number of Islands
Greedy 🍊 ⭕️(N), 💾 ⭕️(2N) 452. Minimum NUmber of Arrows To Burst Balloons
Greedy 🍊 ⭕️(N LOG N), 💾 ⭕️(1) 1833. Maximum Ice Cream Bars
Greedy 🍊 ⭕️(N), 💾 ⭕️(N) 2244. Minimum Rounds To Complete All Tasks
Elements Sort 🍎 ⭕️(log(N)), 💾 ⭕️(1) 4. Median of Two Sorted Arrays
Depth-First Search 🍎 ⭕️(log(N)), 💾 ⭕️(N) 2246. Longest Path With Different Adjacent Characters

Backtracking

Backtracking SubSkills Lvl Complexity: Time , Space Solved Problems
Hash Table 🍊 ⭕️(N), 💾 ⭕️(N) 17. Letter Combinations of a Phone Number
Recursion 🍊 ⭕️(N^2), 💾 ⭕️(N) 22. Generate Parentheses
String, Recursion 🍊 ⭕️(N^2), 💾 ⭕️(N) 39. Combination Sum
Recursion 🍊 ⭕️(N^2), 💾 ⭕️(2N) 77. Combinations
Matrix, Recursion 🍊 ⭕️(N^2), 💾 ⭕️(N^2) 79. Word Search
String, Recursion 🍊 ⭕️(N^2), 💾 ⭕️(N) 784. Letter Case Permutation

Binary Search

Skills by abc Diff Language Solved Problems
Binary Search 🍏 easy Java 367. Valid Perfect Square
Binary Search 🍊 medium Java 33. Search In Rotated Sorted Array
Binary Search 🍊 medium Java 34. Find First and Last Position of Element in Sorted Array
Binary Search 🍊 medium Java 153. Find Minimum in Rotated Sorted Array
Binary Search 🍊 medium Java 167. Two Sum II
Binary Search 🍎 hard Java 4. Median of Two Sorted Arrays
Binary Tree 🍏 easy Java 94. Binary Tree Inorder Traversal
Binary Tree 🍏 easy Java 100. Same Tree
Binary Tree 🍏 easy Java 101. Symmetric Tree
Binary Tree 🍏 easy Java 104. Maximum Depth of Binary Tree
Binary Tree 🍏 easy Java 108. Convert Sorted Array To Binary Search Tree
Binary Tree 🍏 easy Java 145. Binary Tree Postorder Traversal
Binary Tree 🍏 easy Java 226. Invert Binary Tree
Binary Tree 🍏 easy Java 543. Diameter of Binary Tree
Binary Tree 🍏 easy Java 617. Merge Two Binary Trees
Binary Tree 🍏 easy Java 637. Average of Levels in Binary Tree
Binary Tree 🍊 medium Java 98. Validate Binary Search Tree
Binary Tree 🍊 medium Java 102. Binary Tree Level Order Traversal
Binary Tree 🍊 medium Java 105. Construct Binary Tree from Preorder and Inorder Traversal
Binary Tree 🍊 medium Java 114. Flatten Binary Tree to Linked List
Binary Tree 🍊 medium Java 116. Populating Next Right Pointers in Each Node
Binary Tree 🍊 medium Java 199. Binary Tree Right Side View
Binary Tree 🍊 medium Java 669. Trim a Binary Search Tree
Binary Tree 🍊 medium Java 1448. Count Good Nodes in Binary Tree
Bit Manipulation 🍏 easy Java 67. Add Binary
Bit Manipulation 🍏 easy Java 136. Single Number
Bit Manipulation 🍏 easy Java 191. Number of 1 Bits
Bit Manipulation 🍏 easy Java 338. Counting Bits
Breadth-First Search 🍊 medium Java 116. Populating Next Right Pointers in Each Node
Breadth-First Search 🍊 medium Java 994. Rotting Oranges
Design 🍏 easy Java 155. Min Stack
Depth-First Search 🍏 easy Java 733. Flood Fill
Depth-First Search 🍊 medium Java 98. Validate Binary Search Tree
Depth-First Search 🍊 medium Java 695. Max Area of Islands
Divide and Conquer 🍏 easy Java 190. Reverse Bits
Divide and Conquer 🍎 hard Java 4. Median of Two Sorted Arrays
Dynamic Programming 🍏 easy Java 70. Climbing Stairs
Dynamic Programming 🍏 easy Java 118. Pascal's Triangle
Dynamic Programming 🍏 easy Java 119. Pascal's Triangle II
Dynamic Programming 🍏 easy Java 121. Best Time to Buy and Sell Stock
Dynamic Programming 🍏 easy Java 509. Fibonacci Number
Dynamic Programming 🍊 medium Java 5. Longest Palindromic Substring
Dynamic Programming 🍊 medium Java 53. Maximum Subarray
Dynamic Programming 🍊 medium Java 62. Unique Paths
Dynamic Programming 🍊 medium Java 63. Unique Paths II
Dynamic Programming 🍊 medium Java 97. Interleaving String
Dynamic Programming 🍊 medium Java 198. House Robber
Dynamic Programming 🍊 medium Java 322. Coin Change
Dynamic Programming 🍊 medium Java 542. 01 Matrix
Hash Table 🍏 easy Java 1. Two Sum
Hash Table 🍏 easy Java 13. Roman to Integer
Hash Table 🍏 easy Java 202. Happy Number
Hash Table 🍏 easy Java 217. Contains Duplicate
Hash Table 🍏 easy Java 290. Word Pattern
Hash Table 🍏 easy Java 448. Find All Numbers Disappeared in an Array
Hash Table 🍏 easy Java 929. Unique Email Addresses
Hash Table 🍊 medium Java 3. Longest Substring Without Repeating Characters
Hash Table 🍊 medium Java 49. Group Anagram
Hash Table 🍊 medium Java 128. Longest Consecutive Sequence
Linked List 🍏 easy Java 21. Merge Two Sorted Lists
Linked List 🍏 easy Java 160. Intersection of Two Linked Lists
Linked List 🍏 easy Java 203. Remove Linked List Elements
Linked List 🍏 easy Java 206. Reverse Linked List
Linked List 🍏 easy Java 234. Palindrome Linked List
Linked List 🍏 easy Java 876. Middle of the Linked List
Linked List 🍊 medium Java 2. Add Two Numbers
Linked List 🍊 medium Java 19. Remove Nth Node From End of List
Linked List 🍊 medium Java 116. Populating Next Right Pointers in Each Node
Linked List 🍊 medium Java 148. Sort List
Linked List 🍎 hard Java 23. Merge k Sorted Lists
Math 🍏 easy Java 7. Reverse Integer
Math 🍏 easy Java 9. Palindrome Number
Math 🍏 easy Java 231. Power of Two
Math 🍏 easy Java 258. Add Digits
Math 🍏 easy Java 263. Ugly Number
Math 🍏 easy Java 326. Power of Three
Math 🍊 medium Java 2. Add Two Numbers
Math 🍊 medium Java 1780. Check if Number is a Sum of Powers of Three
Matrix 🍏 easy Java 733. Flood Fill
Matrix 🍊 medium Java 48. Rotate Image
Matrix 🍊 medium Java 695. Max Area of Islands
Memoization 🍏 easy Java 509. Fibonacci Number
Merge Sort 🍊 medium Java 148. Sort List
Merge Sort 🍎 hard Java Merge k Sorted Lists
Number Theory 🍊 medium Java 204. Count Primes
Recursion 🍏 easy Java 21. Merge Two Sorted Lists
Recursion 🍏 easy Java 191. Number of 1 Bits
Recursion 🍏 easy Java 206. Reverse Linked List
Recursion 🍏 easy Java 234. Palindrome Linked List
Recursion 🍏 easy Java 231. Power of Two
Recursion 🍏 easy Java 509. Fibonacci Number
Recursion 🍊 medium Java 2. Add Two Numbers
Sliding Window 🍏 easy Java 643. Maximum Average Subarray I
Sliding Window 🍊 medium Java 3. Longest Substring Without Repeating Characters
Sliding Window 🍊 medium Java 438. Find All Anagrams in a String
Sliding Window 🍊 medium Java 567. Permutation in String
Stack 🍏 easy Java 20. Valid Parentheses
Stack 🍏 easy Java 155. Min Stack
Stack 🍊 medium Java 394. Decode String
Stack 🍊 medium Java 1003. Check If Word Is Valid After Substitutions
Sorting 🍏 easy Java 88. Merge Sorted Array
Sorting 🍏 easy Java 977. Squares of a sorted Array
Sorting 🍊 medium Java 56. Merge Intervals
String 🍏 easy Java 14. Longest Common Prefix
String 🍏 easy Java 242. Valid Anagram
String 🍏 easy Java 344. Reverse String
String 🍏 easy Java 387. First Unique Character in a String
String 🍏 easy Java 520. Detect Capital
String 🍏 easy Java 551. Student Attendance Record I
String 🍏 easy Java 557. Reverse Words in a String III
String 🍏 easy Java 771. Jewels and Stones
String 🍊 medium Java 3. Longest Substring Without Repeating Characters
String 🍊 medium Java 5. Longest Palindromic Substring
String 🍊 medium Java 567. Permutation in String
String 🍊 medium Java 784. Letter Case Permutation
String 🍊 medium Java 1061. Lexicographically Smallest Equivalent String
Tree 🍏 easy Java 100. Balanced Binary Tree
Tree 🍏 easy Java 617. Merge Two Binary Trees
Tree 🍊 medium Java 116. Populating Next Right Pointers in Each Node
Tree 🍊 medium Java 687. Longest Unvalued Path
Tree 🍊 medium Java 1443. Minimum Time to collect all Apples on a Tree
Tree 🍊 medium Java 1519. Number of Nodes in the Sub-Tree With the Same Label
Two Pointers 🍏 easy Java 125. Valide Palindrome
Two Pointers 🍏 easy Java 202. Happy Number
Two Pointers 🍏 easy Java 283. Move Zeroes
Two Pointers 🍏 easy Java 344. Reverse String
Two Pointers 🍏 easy Java 392. Is Subsequence
Two Pointers 🍏 easy Java 557. Reverse Words in a String III
Two Pointers 🍊 medium Java 11. Container with Most Water
Two Pointers 🍊 medium Java 19. Remove Nth Node From End of List
Two Pointers 🍊 medium Java 167. Two Sum II
Two Pointers 🍊 medium Java 189. Rotate Array
Two Pointers 🍊 medium Java 567. Permutation in String
Union Find 🍊 medium Java 200. Number of Islands

need think

HackerRank

CodeWars