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.