Skip to content

A Kotlin-based repository for practicing and mastering algorithms and data structures. Featuring challenges from platforms like LeetCode, it covers everything from basic arrays and strings to advanced topics like heaps, tries, and segment trees with custom implementations.

License

Notifications You must be signed in to change notification settings

crisnguyengl/problem-solving-practice-kotlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Problem Solving Practice Repository

Welcome to my Problem Solving Practice repository! 👋

🚀 About This Repository

This repository is dedicated to improving my problem-solving skills using Kotlin. It focuses on mastering algorithms and data structures through hands-on practice and challenges.

Problems are sourced from platforms like Codeforces and LeetCode, as well as structured courses for systematic learning.

🎯 Goals

  • Strengthen algorithmic thinking and coding proficiency.
  • Prepare for coding interviews with comprehensive practice.
  • Build efficient and optimized solutions to challenging problems.

📚 Topics Covered

Arrays and Strings

  • Sliding Window
  • Two Pointers
  • Fast and Slow Pointers
  • Sorting Algorithms
  • Searching Algorithms
  • Prefix Sum

Linked Lists and Stacks

  • In-place Reversal of a Linked List
  • Linked Lists
  • Stacks and Queues
  • Queues and Deques

Trees and Graphs

  • Tree Breadth-First Search
  • Tree Depth-First Search
  • Topological Sort (Graph)
  • Graph Basics and Traversals
  • Graph Algorithms (DFS, BFS, Dijkstra's, Floyd-Warshall)

Dynamic Programming

  • 0/1 Knapsack
  • Longest Common Substring
  • Advanced Dynamic Programming
  • Bitwise XOR
  • Subsets

Greedy Algorithms

  • Merge Intervals
  • Cyclic Sort
  • Greedy Strategies

Divide and Conquer

  • Modified Binary Search

Advanced Topics

  • Two Heaps (Priority Queues)
  • K-way Merge
  • Trie (Prefix Tree)
  • Segment Trees and Fenwick Trees
  • Disjoint Set Union (Union-Find)
  • Computational Geometry
  • Number Theory
  • String Matching Algorithms (KMP, Rabin-Karp, Z-Algorithm)
  • Bit Manipulation Techniques

📂 Project Structure

root/
  ├── DSA/                        # Practice by topics (Leetcode & Codeforces)
  │   ├── arrays_and_strings/
  │   ├── linked_lists_and_stacks/
  │   ├── trees_and_graphs/
  │   ├── dynamic_programming/
  │   ├── greedy_algorithms/
  │   ├── divide_and_conquer/
  │   ├── advanced_topics/
  │   └── utils/
  ├── Leetcode/                   # Practice by Contests and Study Plans
  │   ├── contests/
  │   ├── study_plans/
  ├── test/
  │   ├── DSA/
  │   ├── Leetcode/
  ├── README.md
  ├── .gitignore
  ├── pom.xml
  ├── build.gradle
  ├── LICENSE

Feel free to explore the repository and contribute your suggestions or solutions! 🚀

About

A Kotlin-based repository for practicing and mastering algorithms and data structures. Featuring challenges from platforms like LeetCode, it covers everything from basic arrays and strings to advanced topics like heaps, tries, and segment trees with custom implementations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages