Skip to content

Latest commit

ย 

History

History
202 lines (148 loc) ยท 6.15 KB

File metadata and controls

202 lines (148 loc) ยท 6.15 KB

๐Ÿ“š Complete Algorithm Index

Search by Category

๐Ÿ” Array Algorithms

  • Two Sum (TestTwoSum.kt) - Hash table, O(n) time
  • Maximum Subarray Sum (TestSubSum.kt) - Kadane's algorithm, dynamic programming
  • Merge Intervals (TestMergeIntervals.kt) - Sorting, interval merging
  • Insert Interval (TestMergeIntervals.kt) - Binary search, interval insertion

๐Ÿ”ค String Algorithms

  • Valid Parentheses (TestValidParentheses.kt) - Stack data structure
  • Palindrome Number (TestPalindrome.kt) - Mathematical approach
  • Longest Palindromic Substring (TestPalindrome.kt) - Expand around center
  • Regular Expression Matching (TestRegex1.kt) - Dynamic programming, recursion
  • String Rotation & Substrings (TestSubstrings.kt) - String manipulation

๐Ÿ” Search Algorithms

  • Binary Search (TestBinarySearch.kt) - Classic divide and conquer
  • Search in Rotated Array (TestBinarySearch.kt) - Modified binary search
  • Find Minimum in Rotated Array (TestBinarySearch.kt) - Binary search variant

๐Ÿ“Š Dynamic Programming

  • Climbing Stairs (TestClimbingStairs.kt) - Fibonacci sequence, memoization
  • Coin Change (TestClimbingStairs.kt) - Bottom-up DP, optimal substructure
  • Longest Increasing Subsequence (TestClimbingStairs.kt) - DP with backtracking

๐ŸŒฒ Tree Algorithms

  • Binary Tree Traversal (TestTree.kt) - Inorder, preorder, postorder
  • Tree Construction (TestTree.kt) - Building trees from traversals
  • Tree Serialization (TestTree.kt) - Converting tree to string representation

๐Ÿ”— Linked List Algorithms

  • Reverse Linked List (TestLinked.kt) - Iterative and recursive approaches
  • Reverse K Groups (TestLinked.kt) - Advanced linked list manipulation

๐Ÿงฎ Mathematical Algorithms

  • Kakuro Solver (TestKakuro.kt) - Backtracking, combinatorial optimization
  • Year with Maximum People (TestYearWithMaxPeople.kt) - Event processing, sweep line

Search by Difficulty

Easy

  • Two Sum (Array/Hash Table)
  • Valid Parentheses (Stack)
  • Palindrome Number (Math)
  • Binary Search (Binary Search)
  • Climbing Stairs (Dynamic Programming)

Medium

  • Maximum Subarray (Dynamic Programming)
  • Longest Palindromic Substring (String)
  • Search in Rotated Sorted Array (Binary Search)
  • Merge Intervals (Array/Sorting)
  • Insert Interval (Array/Binary Search)
  • Coin Change (Dynamic Programming)
  • Longest Increasing Subsequence (Dynamic Programming)

Hard

  • Regular Expression Matching (Dynamic Programming/Recursion)
  • Kakuro Solver (Backtracking)
  • Advanced Tree Operations (Trees/Recursion)

Search by Data Structure

Arrays

  • Two Sum, Maximum Subarray, Merge Intervals, Insert Interval

Hash Tables/Maps

  • Two Sum, Year with Maximum People

Stacks

  • Valid Parentheses

Trees

  • Binary Tree operations, traversals, serialization

Linked Lists

  • Reverse operations, K-group reversal

Strings

  • Palindromes, pattern matching, substring operations

Search by Algorithm Technique

Two Pointers

  • Palindrome detection, array problems

Sliding Window

  • Maximum subarray problems

Binary Search

  • Search problems, finding minimum/maximum

Dynamic Programming

  • Optimization problems, sequence problems

Backtracking

  • Combinatorial problems, constraint satisfaction

Divide and Conquer

  • Binary search, tree operations

Greedy Algorithms

  • Interval problems, optimization

Search by Time Complexity

O(1) - Constant Time

  • Array access operations

O(log n) - Logarithmic Time

  • Binary search variants
  • Tree height operations

O(n) - Linear Time

  • Two Sum, Valid Parentheses
  • Single pass array algorithms
  • Tree traversals

O(n log n) - Linearithmic Time

  • Merge Intervals (sorting step)
  • Efficient sorting algorithms

O(nยฒ) - Quadratic Time

  • Longest Palindromic Substring
  • Longest Increasing Subsequence (basic DP)
  • Some string matching algorithms

O(2^n) - Exponential Time

  • Backtracking solutions (Kakuro)
  • Brute force approaches

Search by Space Complexity

O(1) - Constant Space

  • Palindrome Number, Binary Search
  • In-place algorithms

O(n) - Linear Space

  • Hash table solutions (Two Sum)
  • DP arrays (Climbing Stairs, Coin Change)
  • Stack-based solutions

O(h) - Tree Height Space

  • Recursive tree algorithms
  • Call stack space

Common Interview Categories

FAANG Companies Favorites

  • Two Sum, Valid Parentheses, Binary Search
  • Maximum Subarray, Merge Intervals
  • Tree traversals, Dynamic Programming

Startup Technical Screens

  • String manipulation, Array processing
  • Basic data structures, Algorithm optimization

System Design Supporting Algorithms

  • Efficient search and sort
  • Data structure operations
  • Optimization algorithms

Study Path Recommendations

Beginner (Start Here)

  1. Two Sum โ†’ Valid Parentheses โ†’ Binary Search
  2. Palindrome Number โ†’ Climbing Stairs
  3. Maximum Subarray โ†’ Tree Traversals

Intermediate

  1. Merge Intervals โ†’ Search in Rotated Array
  2. Longest Palindromic Substring โ†’ Coin Change
  3. Linked List operations โ†’ String algorithms

Advanced

  1. Regular Expression Matching
  2. Complex Dynamic Programming
  3. Backtracking algorithms (Kakuro)

Interview Preparation Order

  1. Week 1: Arrays and Hash Tables (Two Sum, Maximum Subarray)
  2. Week 2: Strings and Stacks (Palindromes, Valid Parentheses)
  3. Week 3: Binary Search variants
  4. Week 4: Dynamic Programming (Climbing Stairs, Coin Change)
  5. Week 5: Trees and Linked Lists
  6. Week 6: Advanced topics (Intervals, Backtracking)

Keywords for Search

Algorithm Types: binary search, dynamic programming, backtracking, greedy, divide and conquer, two pointers, sliding window

Data Structures: array, hash table, stack, queue, tree, linked list, graph

Problem Types: sorting, searching, optimization, string matching, tree traversal, graph algorithms

Companies: Google, Amazon, Microsoft, Facebook, Apple, Netflix, Uber, Airbnb

Concepts: time complexity, space complexity, big O notation, recursion, iteration, memoization

Interview Prep: coding interview, technical interview, software engineer, computer science, algorithms and data structures