Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures & Algorithms in Python

A personal learning repository documenting my journey through Data Structures and Algorithms (DSA) using Python — covering implementations, complexity analysis, and curated LeetCode solutions.


Repository Structure

DSA-PY/
├── python_basics/          # Core Python syntax, OOP, standard library, and tooling
├── dsa_basics/             # Time/space complexity, recursion, and basic math concepts
├── data_structures/        # Implementations of core structures with complexity notes
├── algorithms/             # Sorting, searching, recursion, graph traversals, and more
└── leetcode_problems/      # Solutions organized by topic to match study roadmaps

A beginner-friendly guide to Python fundamentals — syntax, data types, OOP, the standard library, and environment setup. Start here if you are new to Python.

An introduction to fundamental analysis tools and basic programming building blocks: Big-O time and space complexity, basic mathematical algorithms, and the basics of recursion.

Custom implementations of core data structures (arrays, linked lists, stacks, queues, trees, graphs, heaps, hash maps) with Python-specific notes on built-in libraries such as collections.deque and heapq, and time/space complexity breakdowns for every operation.

Explanations, pseudocode, and Python implementations of key algorithmic techniques — sorting, binary search, recursion, dynamic programming, greedy methods, and graph traversals (BFS/DFS).

Solved LeetCode problems organized by topic and difficulty, structured to follow the NeetCode and Striver A2Z roadmaps. Each solution includes an explanation and complexity analysis.


Recommended Learning Path

New to Python? Work through Python Basics before starting DSA.

Follow this order for the most structured progression:

1. Python Basics → Build a solid foundation in Python syntax, data types, functions, and OOP.

2. DSA Basics → Master time/space complexity analysis (Big-O), recursion fundamentals, and basic math.

3. Data Structures → Learn and implement each structure from scratch. Understand when and why to use each one.

4. LeetCode Problems → After each data structure, immediately practice its corresponding LeetCode problems to reinforce the concept.

5. Algorithms → Layer in algorithmic techniques (sorting, recursion, dynamic programming) as you grow comfortable with the underlying structures.

Repeat steps 3–5 progressively — don't wait to finish all data structures before touching algorithms or LeetCode.


Resources

Video

Resource Why it's useful
Abdul Bari (YouTube) Best for theory — algorithm paradigms (Greedy, DP, Divide & Conquer) and complexity analysis explained from first principles.
NeetCode (YouTube) Clear, concise LeetCode walkthroughs organized by topic and difficulty.

Roadmaps & Problem Sets

Resource Why it's useful
Striver's A2Z DSA Sheet Comprehensive step-by-step sheet covering every major DSA topic with curated problems.
NeetCode Roadmap A structured topic progression for LeetCode practice, from arrays to advanced graphs.

Reading

Resource Why it's useful
Problem Solving with Algorithms and Data Structures using Python A free interactive textbook covering Pythonic implementations of classic structures and algorithms.
W3Schools Python DSA Quick reference for basic data structure implementations in Python.

Visualization

Resource Why it's useful
VisuAlgo Animated, step-by-step visualizations of operations on trees, graphs, sorting algorithms, and more.
Algorithm Visualizer Interactive portal that compiles and visualizes code execution in real time.

Author

Kunal Sambyal

About

A complete Data Structures & Algorithms guide in Python with LeetCode solutions.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages