A comprehensive collection of coding interview problems and solutions in Kotlin, organized by algorithm types and data structures. This repository contains solutions to problems from Codility, LeetCode, and common technical interview questions.
coding_interview/
├── kotlin/ - Kotlin implementations (primary)
│ ├── src/main/kotlin/algorithms/ - All algorithm implementations
│ ├── build.gradle.kts - Gradle build configuration
│ └── README.md - Kotlin-specific guide
│
├── python/ - Python implementations
│ ├── algorithms/ - Core algorithm implementations
│ ├── striver/ - Striver series problems
│ └── codility/ - Codility practice problems
│
└── docs/
└── kotlin/docs/ - Comprehensive Kotlin documentation
This repository contains implementations in two languages:
- kotlin/ - Kotlin implementations (primary, with comprehensive documentation)
- python/ - Python implementations
The primary Kotlin codebase with comprehensive documentation and organized structure.
kotlin/src/main/kotlin/algorithms/
├── arrays/ - Array manipulation, rotation, searching, subarrays
├── strings/ - String problems (anagrams, palindromes, pattern matching)
├── dynamic_programming/ - DP solutions (fibonacci, knapsack, coin change, subsequence)
├── prefix_sum/ - Prefix sum technique problems
├── sliding_window/ - Sliding window pattern (caterpillar method)
├── stack_queue/ - Stack and queue implementations
├── sorting/ - Sorting algorithms and problems
├── greedy/ - Greedy algorithm solutions
├── math/ - Mathematical problems (primes, factorials, GCD)
├── bit_manipulation/ - Bitwise operations
├── recursion/ - Recursive solutions
├── patterns/ - Pattern printing problems
└── basics/ - Kotlin basics (iteration, collections)
docs/kotlin/docs/
├── kotlin-basics/ - Kotlin fundamentals (arrays, strings, maps, numbers)
├── algorithm-theory/ - Complexity analysis, DP patterns, sorting algorithms
├── data-structures/ - Trees, linked lists, graphs
├── interview-prep/ - Problem patterns, tips, study plan, problem types
├── techniques/ - HashMap, sliding window, prefix sum
└── README.md - Complete documentation guide
Start here: Read docs/kotlin/docs/README.md for a complete guide to all documentation and study plans.
Python implementations organized by source:
- algorithms/ - Core algorithm implementations (arrays, DP, strings, sorting, etc.)
- striver/ - Striver series problem solutions
- codility/ - Codility practice problems
- Navigate to
docs/kotlin/docs/README.mdfor the complete documentation index - Review
docs/kotlin/docs/interview-prep/problem-types-index.mdto identify problem patterns - Study specific topics in
docs/kotlin/docs/algorithm-theory/anddocs/kotlin/docs/data-structures/ - Practice with code in
kotlin/src/main/kotlin/algorithms/
- Week 1-2: Kotlin basics, arrays, strings, two pointers
- Week 3-4: Dynamic programming patterns (all DP types A-G)
- Week 5-6: Trees, graphs, advanced data structures
- Week 7+: Mock interviews, company-specific problems
- Arrays:
docs/kotlin/docs/interview-prep/array-problems.md - Dynamic Programming:
docs/kotlin/docs/algorithm-theory/dp_patterns.md - Trees:
docs/kotlin/docs/data-structures/tree_interview_questions.md - Patterns:
docs/kotlin/docs/interview-prep/interview_patterns.md
Each Kotlin file contains:
- Problem description with examples
- Time and space complexity analysis
- Multiple test cases
- Clear implementation with comments
To run any file:
kotlinc filename.kt -include-runtime -d filename.jar && java -jar filename.jarOr use the test scripts in kotlin/outputs/ for batch testing.
LeetCode - https://leetcode.com/
- Best for interview preparation
- Company-tagged problems
- Discussion forums with solutions
HackerRank - https://www.hackerrank.com/
- Skill certification
- Language-specific tracks
- Interview preparation kits
Codility - https://www.codility.com/
- Timed assessments
- Company screening tests
- Detailed performance reports
Codeforces - https://codeforces.com/
- Competitive programming
- Regular contests
- Rating system
HackerEarth - https://www.hackerearth.com/
- Hiring challenges
- Practice problems
- Coding competitions
- VisuAlgo - https://visualgo.net/
- Algorithm animations
- Interactive learning
- Step-by-step execution
Dynamic Programming Playlist - https://www.youtube.com/watch?v=nqowUJzG-iM&list=PL_z_8CaSLPWekqhdCPmFohncHwz8TY2Go
- Aditya Verma DP series
- All DP patterns covered
Back to Back SWE - https://www.youtube.com/watch?v=Zq4upTEaQyM&list=PLiQ766zSC5jM2OKVr8sooOuGgZkvnOCTI
- Interview problem explanations
- Detailed walkthroughs
Codility Lessons - https://www.youtube.com/watch?v=sACjpw8BtTc&list=PLRq88ERCRTVbaPOTIKD5CTDiHfOFxvrKX
- Codility problem solutions
- Common patterns
Byte by Byte - https://www.youtube.com/watch?v=c0OMPDLef08&list=PLNmW52ef0uwsjnM06LweaYEZr-wjPKBnj
- Interview questions breakdown
- Coding tips
5 Hour DP Training - https://youtu.be/oBt53YbR9Kk
- Comprehensive DP coverage
- Multiple problem types
LeetCode Video Solutions - https://youtube.com/playlist?list=PLU_sdQYzUj2keVENTP0a5rdykRSgg9Wp-
- Problem walkthroughs
- Visual explanations
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Elements of Programming Interviews by Adnan Aziz
- Algorithm Design Manual by Steven Skiena
- 90+ algorithm implementations in Kotlin
- Comprehensive documentation covering all major topics
- Problem pattern recognition guides
- Multiple implementations for comparison (6 rotation algorithms, 6 fibonacci variations)
- Interview preparation strategies and tips
- Organized by technique, data structure, and problem type
- Complete DP Guide: All 9 DP patterns (Fibonacci, 0/1 Knapsack, Unbounded Knapsack, LCS, LIS, Palindrome, MCM, Grids, State Machine)
- Problem Patterns: 15 common interview patterns with recognition tips
- Complexity Reference: Big O cheatsheet for all algorithms
- Interview Tips: Communication strategies, common gotchas, time management
See docs/kotlin/docs/README.md for complete details.