Skip to content

Mani-02nev/DSA_P-S

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures & Algorithms — C++ & Python

A structured day-by-day DSA problem plan for developers who prefer a logic-first approach.

🔹 Same problem handled in C++ and Python
🔹 Focus on algorithms & problem-solving, not copy-paste code
🔹 Designed for future full-stack & AI developers


60 Day plan

Day Topic Problem / Question Algorithm Notes C++ Python
01 Basics Find Maximum Element in Array Algo/day-01.md Notes/Array.md cpp/day-01.cpp python/day-01.py
02 Arrays Analyze Time & Space Complexity Algo/day-02.md Notes/Array.md cpp/day-02.cpp python/day-02.py
03 Arrays Linear Search Algo/day-03.md Notes/Searching.md cpp/day-03.cpp python/day-03.py
04 Arrays Reverse an Array Algo/day-04.md Notes/Array.md cpp/day-04.cpp python/day-04.py
05 Arrays Find Second Largest Element Algo/day-05.md Notes/Array.md cpp/day-05.cpp python/day-05.py
06 Arrays Remove Duplicates from Sorted Array Algo/day-06.md Notes/Array.md cpp/day-06.cpp python/day-06.py
07 Arrays Rotate Array by K Positions Algo/day-07.md Notes/Array.md cpp/day-07.cpp python/day-07.py
08 Two Pointers Pair with Given Sum (Sorted) Algo/day-08.md Notes/Two-Pointers.md cpp/day-08.cpp python/day-08.py
09 Two Pointers Move All Zeros to End Algo/day-09.md Notes/Two-Pointers.md cpp/day-09.cpp python/day-09.py
10 Two Pointers Container With Most Water Algo/day-10.md Notes/Two-Pointers.md cpp/day-10.cpp python/day-10.py
11 Sliding Window Maximum Sum Subarray (K) Algo/day-11.md Notes/Sliding-Window.md cpp/day-11.cpp python/day-11.py
12 Sliding Window Longest Subarray with Sum K Algo/day-12.md Notes/Sliding-Window.md cpp/day-12.cpp python/day-12.py
13 Sliding Window Minimum Size Subarray Sum Algo/day-13.md Notes/Sliding-Window.md cpp/day-13.cpp python/day-13.py
14 Sliding Window Subarray Product < K Algo/day-14.md Notes/Sliding-Window.md cpp/day-14.cpp python/day-14.py
15 Prefix Sum Build Prefix Sum Array Algo/day-15.md Notes/Prefix-Sum.md cpp/day-15.cpp python/day-15.py
16 Prefix Sum Range Sum Query Algo/day-16.md Notes/Prefix-Sum.md cpp/day-16.cpp python/day-16.py
17 Prefix Sum Equilibrium Index Algo/day-17.md Notes/Prefix-Sum.md cpp/day-17.cpp python/day-17.py
18 DP Kadane’s Algorithm Algo/day-18.md Notes/DP.md cpp/day-18.cpp python/day-18.py
19 DP Circular Subarray Sum Algo/day-19.md Notes/DP.md cpp/day-19.cpp python/day-19.py
20 Arrays Best Time to Buy & Sell Stock Algo/day-20.md Notes/Array.md cpp/day-20.cpp python/day-20.py
21 Hashing Frequency Count Algo/day-21.md Notes/Hashing.md cpp/day-21.cpp python/day-21.py
22 Hashing Two Sum (Unsorted) Algo/day-22.md Notes/Hashing.md cpp/day-22.cpp python/day-22.py
23 Hashing Subarray Sum = K Algo/day-23.md Notes/Hashing.md cpp/day-23.cpp python/day-23.py
24 Hashing Longest Consecutive Sequence Algo/day-24.md Notes/Hashing.md cpp/day-24.cpp python/day-24.py
25 Stack Valid Parentheses Algo/day-25.md Notes/Stack.md cpp/day-25.cpp python/day-25.py
26 Stack Next Greater Element Algo/day-26.md Notes/Stack.md cpp/day-26.cpp python/day-26.py
27 Stack Min Stack O(1) Algo/day-27.md Notes/Stack.md cpp/day-27.cpp python/day-27.py
28 Queue Sliding Window Maximum Algo/day-28.md Notes/Queue.md cpp/day-28.cpp python/day-28.py
29 Deque First Negative in Window Algo/day-29.md Notes/Queue.md cpp/day-29.cpp python/day-29.py
30 Stack Largest Histogram Area Algo/day-30.md Notes/Stack.md cpp/day-30.cpp python/day-30.py
31 Linked List Reverse Linked List Algo/day-31.md Notes/LinkedList.md cpp/day-31.cpp python/day-31.py
32 Linked List Detect Cycle Algo/day-32.md Notes/LinkedList.md cpp/day-32.cpp python/day-32.py
33 Linked List Merge Two Sorted Lists Algo/day-33.md Notes/LinkedList.md cpp/day-33.cpp python/day-33.py
34 Recursion Subsets Algo/day-34.md Notes/Recursion.md cpp/day-34.cpp python/day-34.py
35 Recursion Permutations Algo/day-35.md Notes/Recursion.md cpp/day-35.cpp python/day-35.py
36 Trees Tree Traversals Algo/day-36.md Notes/Trees.md cpp/day-36.cpp python/day-36.py
37 Trees Height & Diameter Algo/day-37.md Notes/Trees.md cpp/day-37.cpp python/day-37.py
38 BST Insert & Search Algo/day-38.md Notes/BST.md cpp/day-38.cpp python/day-38.py
39 BST Validate BST Algo/day-39.md Notes/BST.md cpp/day-39.cpp python/day-39.py
40 Trees Lowest Common Ancestor Algo/day-40.md Notes/Trees.md cpp/day-40.cpp python/day-40.py
41 Graph BFS & DFS Algo/day-41.md Notes/Graph.md cpp/day-41.cpp python/day-41.py
42 Graph Connected Components Algo/day-42.md Notes/Graph.md cpp/day-42.cpp python/day-42.py
43 Graph Cycle Detection Algo/day-43.md Notes/Graph.md cpp/day-43.cpp python/day-43.py
44 Graph Topological Sort Algo/day-44.md Notes/Graph.md cpp/day-44.cpp python/day-44.py
45 Graph Shortest Path (BFS) Algo/day-45.md Notes/Graph.md cpp/day-45.cpp python/day-45.py
46 DP Fibonacci Optimization Algo/day-46.md Notes/DP.md cpp/day-46.cpp python/day-46.py
47 DP Climbing Stairs Algo/day-47.md Notes/DP.md cpp/day-47.cpp python/day-47.py
48 DP Coin Change Algo/day-48.md Notes/DP.md cpp/day-48.cpp python/day-48.py
49 DP Longest Common Subsequence Algo/day-49.md Notes/DP.md cpp/day-49.cpp python/day-49.py
50 DP 0/1 Knapsack Algo/day-50.md Notes/DP.md cpp/day-50.cpp python/day-50.py
51 Advanced C++ STL Internals Algo/day-51.md Notes/CPP.md cpp/day-51.cpp
52 Advanced C++ Time vs Space Algo/day-52.md Notes/CPP.md cpp/day-52.cpp
53 Advanced C++ Pointers vs References Algo/day-53.md Notes/CPP.md cpp/day-53.cpp
54 Advanced C++ Stack vs Heap Algo/day-54.md Notes/CPP.md cpp/day-54.cpp
55 Advanced C++ RAII & Move Semantics Algo/day-55.md Notes/CPP.md cpp/day-55.cpp
56 Advanced Python dict / set / Counter Algo/day-56.md Notes/Python.md python/day-56.py
57 Advanced Python List vs Tuple Algo/day-57.md Notes/Python.md python/day-57.py
58 Advanced Python OOP & Dunder Algo/day-58.md Notes/Python.md python/day-58.py
59 Advanced Python Iterators & Generators Algo/day-59.md Notes/Python.md python/day-59.py
60 Advanced Python Optimization & Profiling Algo/day-60.md Notes/Python.md python/day-60.py

📁 Repository Structure (Recommended)

DSA/
│
├── README.md
├── Algo/
│   ├── day-01.md
│   ├── day-02.md
│   └── ...
├── Notes/
│   ├── Array.md
│   ├── Searching.md
│   ├── Two-Pointers.md
│   ├── Sliding-Window.md
│   ├── Prefix-Sum.md
│   └── DP.md
├── cpp/
│   ├── day-01.cpp
│   └── ...
└── python/
    ├── day-01.py
    └── ...

🧠 How to Use This Repository

  1. Open the Algorithm link first and understand the logic.
  2. Implement the solution in C++ and Python yourself.
  3. Maintain topic-wise theory and insights inside Notes/.
  4. Commit daily to build strong GitHub consistency and DSA mastery.

This repository is designed for serious developers preparing for interviews, competitive programming, and system-level thinking.

About

Logic-first DSA learning: Algorithm → Analysis → Implementation. Same problem, same logic, multiple languages (C++ & Python).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors