Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms (DSA)

A structured course outline, reference material, and challenge set covering the core concepts of Data Structures and Algorithms. Challenges can be solved in any programming language of your choice. Solutions are provided for reference.


What This Repository Is

This repository serves as a complete, self-contained DSA learning resource. Whether you are an absolute beginner building your foundation, a student working through coursework, a self-taught developer filling in gaps, or a software engineer preparing for technical interviews — this repository is structured to meet you where you are and take you further.

It is not a static document. It grows as new content, challenges, and solutions are added over time.


What Is Covered

The repository covers the following topics, progressing from foundational concepts to advanced techniques:

Foundations

  • Big O Notation — time and space complexity analysis
  • Arrays
  • Linked Lists

Core Data Structures

  • Stacks
  • Queues
  • Hash Maps
  • Trees and Binary Search Trees
  • Heaps and Priority Queues
  • Tries

Algorithms and Techniques

  • Recursion and Memoization
  • Binary Search
  • Sorting — Merge Sort, Quick Sort
  • Two Pointers
  • Sliding Window
  • Graph Traversal — BFS and DFS
  • Dynamic Programming

Repository Structure

.
├── README.md                  — you are here
├── notes/dsa_summary.md             — complete concept reference and revision sheet
├── problems/dsa_challenges.md          — 60+ practice problems organized by topic
└── solutions/                 — solutions to challenges (added progressively)

How to Use This Repository

If you are a beginner, start with dsa_summary.md. Read through each topic in order. The concepts build on one another — Big O first, then Arrays and Linked Lists, then the more complex structures.

If you are preparing for interviews, go directly to dsa_challenges.md. Problems are labelled by difficulty and topic. Work through them under timed conditions — 20 to 45 minutes per problem — and check solutions only after a genuine attempt.

If you are revisiting a specific topic, use dsa_summary.md as a quick reference. Each section includes key concepts, Big O tables, and notes on when to apply each structure or technique.


Language of Choice

All challenges in this repository are language agnostic. You may solve them in any programming language you are comfortable with. Common choices include:

  • Python
  • C
  • Java
  • JavaScript
  • C++

The concepts, patterns, and complexities are identical regardless of language. Pick the one you know best and focus on the thinking, not the syntax.


Solutions

Solutions to all challenges exist and are provided for reference. They are intended to be consulted after a genuine attempt — not before. Reading a solution without attempting the problem first will undermine the learning process.

Solutions include explanation of the approach, time complexity, space complexity, and notes on edge cases where relevant.


Contributing

This repository is primarily a personal learning resource but contributions are welcome. If you spot an error, have a cleaner solution, or want to add a challenge, feel free to open a pull request.


A Note on Practice

Understanding a concept and being able to implement it under pressure are two different skills. Reading this material is the first step. Solving problems consistently, testing edge cases rigorously, and analysing your own solutions for efficiency is what builds genuine competence.

Consistent practice on these patterns is what gets people through technical interviews and makes them better engineers in practice.


This repository is actively maintained and updated as new content is added.

About

This is a DSA course outline, containing structured content and challenges that can be solved using your language of choice. Solutions to the challenges are also provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages