0% found this document useful (0 votes)
134 views6 pages

Student Study Plan for DSA

The document outlines a 10-week curriculum focused on Data Structures and Algorithms (DSA), covering topics such as arrays, strings, linked lists, trees, graphs, and dynamic programming. Each week includes specific concepts, problem-solving exercises, and weekly reviews to reinforce learning. The final week emphasizes revision and mock interviews to prepare for technical interviews.

Uploaded by

shrinjoyee30
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
134 views6 pages

Student Study Plan for DSA

The document outlines a 10-week curriculum focused on Data Structures and Algorithms (DSA), covering topics such as arrays, strings, linked lists, trees, graphs, and dynamic programming. Each week includes specific concepts, problem-solving exercises, and weekly reviews to reinforce learning. The final week emphasizes revision and mock interviews to prepare for technical interviews.

Uploaded by

shrinjoyee30
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Week 1: Fundamentals & Arrays

●​ Monday:
○​ Concept: Introduction to DSA, Time & Space Complexity (Big O Notation),
Recursion Basics.
○​ Problems: Simple array traversals, finding min/max, sum. (Easy)
●​ Tuesday:
○​ Concept: Arrays - Basic operations, dynamic arrays.
○​ Problems: Array manipulation (rotate, remove duplicates - sorted array),
finding missing number. (Easy/Medium)
●​ Wednesday:
○​ Concept: Arrays - Two Pointers Technique.
○​ Problems: Two sum, 3 sum, Valid Palindrome (string, but uses two pointers),
container with most water. (Medium)
●​ Thursday:
○​ Concept: Arrays - Sliding Window Technique.
○​ Problems: Max sum subarray of size K, longest substring with K distinct
characters. (Medium)
●​ Friday:
○​ Concept: Arrays - Prefix Sum.
○​ Problems: Range sum query, subarray sum equals K. (Medium)
○​ Weekly Review: Revisit all concepts, try 2-3 mixed array problems from
different types.

Week 2: Strings & Hashing

●​ Monday:
○​ Concept: Strings - Immutability, common string operations, character
manipulation.
○​ Problems: Reverse a string, check for anagrams, check for palindromes.
(Easy)
●​ Tuesday:
○​ Concept: Strings - String matching (Naive approach, introduction to KMP if
time permits).
○​ Problems: Longest common prefix, Roman to Integer, Integer to Roman.
(Medium)
●​ Wednesday:
○​ Concept: Hashing - Hash Maps and Hash Sets. Understanding put, get,
containsKey, collision resolution (conceptual).
○​ Problems: Two sum (using hash map), count distinct elements, find first
non-repeating character. (Easy/Medium)
●​ Thursday:
○​ Concept: Hashing - Frequency counting, mapping characters/numbers.
○​ Problems: Group anagrams, longest consecutive sequence, subarray sum
equals K (again, but now with hashing). (Medium)
●​ Friday:
○​ Concept: Hashing - Custom Hash Functions (briefly).
○​ Problems: Unique Morse Code Words, finding duplicates within a window
(sliding window + hash set). (Medium)
○​ Weekly Review: Focus on effective use of hashing in conjunction with
arrays/strings.

Week 3: Linked Lists & Stacks

●​ Monday:
○​ Concept: Linked Lists - Singly Linked List: creation, traversal, insertion,
deletion.
○​ Problems: Reverse a Linked List, delete node, middle of the Linked List.
(Easy/Medium)
●​ Tuesday:
○​ Concept: Linked Lists - Doubly Linked List, Circular Linked List.
○​ Problems: Merge two sorted Linked Lists, detect cycle in LL, remove Nth
node from end. (Medium)
●​ Wednesday:
○​ Concept: Stacks - LIFO principle, array vs. linked list implementation, basic
operations (push, pop, peek).
○​ Problems: Valid Parentheses, Implement Queue using Stacks.
(Easy/Medium)
●​ Thursday:
○​ Concept: Stacks - Monotonic Stack for next greater/smaller element.
○​ Problems: Next Greater Element, Largest Rectangle in Histogram
(conceptual hard). (Medium/Hard)
●​ Friday:
○​ Concept: Stacks - Application in expression evaluation.
○​ Problems: Evaluate Reverse Polish Notation, Basic Calculator (conceptual).
(Medium/Hard)
○​ Weekly Review: Ensure strong understanding of pointers/references for LL,
and stack applications.

Week 4: Queues & Recursion/Backtracking (Intermediate)

●​ Monday:
○​ Concept: Queues - FIFO principle, array vs. linked list implementation, basic
operations.
○​ Problems: Implement Stack using Queues, BFS introduction for simple grid
problems. (Easy/Medium)
●​ Tuesday:
○​ Concept: Deque (Double-ended Queue), Sliding Window Maximum.
○​ Problems: Sliding Window Maximum (using Deque). (Hard)
●​ Wednesday:
○​ Concept: Recursion - Deeper Dive: call stack, recursion tree, memoization
(intro to DP).
○​ Problems: Tower of Hanoi, all permutations of a string/array (intro to
backtracking). (Medium)
●​ Thursday:
○​ Concept: Backtracking - N-Queens problem, Combination Sum.
○​ Problems: Subsets, generate parentheses. (Medium)
●​ Friday:
○​ Concept: Backtracking - Rat in a Maze, Sudoku Solver.
○​ Problems: Word Search. (Medium/Hard)
○​ Weekly Review: Focus on designing recursive functions, identifying base
cases, and avoiding redundant calculations.

Week 5: Trees (Part 1)

●​ Monday:
○​ Concept: Trees - Terminology (root, node, leaf, depth, height), Binary Tree
properties.
○​ Problems: Implement a Binary Tree node, basic tree creation. (Easy)
●​ Tuesday:
○​ Concept: Tree Traversals - Inorder, Preorder, Postorder (Recursive).
○​ Problems: Implement all 3 traversals. (Easy)
●​ Wednesday:
○​ Concept: Tree Traversals - Level Order Traversal (BFS for trees).
○​ Problems: Level Order Traversal, maximum depth of binary tree.
(Easy/Medium)
●​ Thursday:
○​ Concept: Binary Search Trees (BST) - Properties, Insertion, Deletion.
○​ Problems: Validate BST, Search in BST. (Medium)
●​ Friday:
○​ Concept: BST - LCA in BST, convert sorted array to BST.
○​ Problems: Kth smallest element in BST. (Medium)
○​ Weekly Review: Strong focus on tree recursion and understanding BST
properties.

Week 6: Trees (Part 2) & Heaps

●​ Monday:
○​ Concept: Advanced Tree Problems - Symmetric Tree, Invert Binary Tree.
○​ Problems: Path Sum, Diameter of Binary Tree. (Medium)
●​ Tuesday:
○​ Concept: Balanced Trees (AVL, Red-Black - conceptual understanding, not
implementation).
○​ Problems: Count good nodes in Binary Tree. (Medium)
●​ Wednesday:
○​ Concept: Heaps - Min Heap, Max Heap properties, heapify process, building
a heap.
○​ Problems: Implement Min Heap, implement Max Heap. (Medium)
●​ Thursday:
○​ Concept: Priority Queue (often implemented using Heaps), Heap Sort
(conceptual).
○​ Problems: Kth largest element in an array (using min-heap), Top K Frequent
Elements. (Medium/Hard)
●​ Friday:
○​ Concept: Heaps - More applications.
○​ Problems: Merge K sorted lists (using min-heap). (Hard)
○​ Weekly Review: Understand when to use heaps vs. other data structures.

Week 7: Graphs (Part 1)

●​ Monday:
○​ Concept: Graphs - Terminology (vertex, edge, degree, path, cycle),
Directed/Undirected, Weighted/Unweighted.
○​ Problems: Graph Representation (Adjacency Matrix vs. Adjacency List).
(Easy)
●​ Tuesday:
○​ Concept: Graph Traversal - Breadth-First Search (BFS) on Graphs.
○​ Problems: BFS traversal, Find if path exists. (Medium)
●​ Wednesday:
○​ Concept: Graph Traversal - Depth-First Search (DFS) on Graphs.
○​ Problems: DFS traversal, Number of Islands, Cycle Detection (undirected
graph). (Medium)
●​ Thursday:
○​ Concept: Topological Sort (for Directed Acyclic Graphs - DAGs).
○​ Problems: Course Schedule. (Medium/Hard)
●​ Friday:
○​ Concept: Detecting Cycles in Directed Graphs (using DFS).
○​ Problems: Clone Graph. (Medium/Hard)
○​ Weekly Review: Crucial week for graph basics. Practice drawing graphs and
traversals.

Week 8: Graphs (Part 2) & Greedy Algorithms

●​ Monday:
○​ Concept: Shortest Path Algorithms - Dijkstra's Algorithm (for non-negative
weights).
○​ Problems: Dijkstra's implementation, network delay time. (Hard)
●​ Tuesday:
○​ Concept: Minimum Spanning Trees (MST) - Prim's Algorithm.
○​ Problems: Connecting Cities With Minimum Cost. (Hard)
●​ Wednesday:
○​ Concept: Greedy Algorithms - Introduction, when to use greedy.
○​ Problems: Activity Selection, Coin Change (greedy approach where
applicable), N meetings in one room. (Medium)
●​ Thursday:
○​ Concept: Greedy Algorithms - More problems.
○​ Problems: Fractional Knapsack, Jump Game. (Medium)
●​ Friday:
○​ Concept: Greedy Algorithm limitations.
○​ Problems: Gas Station. (Medium/Hard)
○​ Weekly Review: Understand the greedy choice property and optimal
substructure for greedy problems.

Week 9: Dynamic Programming (DP)

●​ Monday:
○​ Concept: Dynamic Programming - Introduction, identifying overlapping
subproblems and optimal substructure. Memoization (top-down) vs.
Tabulation (bottom-up).
○​ Problems: Fibonacci sequence (DP approach), Climbing Stairs.
(Easy/Medium)
●​ Tuesday:
○​ Concept: DP - 1D DP problems.
○​ Problems: House Robber, Maximum Subarray. (Medium)
●​ Wednesday:
○​ Concept: DP - 2D DP problems.
○​ Problems: Longest Common Subsequence (LCS), Unique Paths.
(Medium/Hard)
●​ Thursday:
○​ Concept: DP - Knapsack Problem (0/1 Knapsack), Bounded Knapsack.
○​ Problems: 0/1 Knapsack. (Hard)
●​ Friday:
○​ Concept: DP - More advanced patterns (e.g., subset sum, coin change
problem - DP).
○​ Problems: Coin Change (DP), Word Break. (Hard)
○​ Weekly Review: This is usually the hardest topic. Focus on recognizing DP
patterns.

Week 10: Revision & Mock Interviews

●​ Monday:
○​ Revision: Comprehensive review of Arrays, Strings, Linked Lists, Stacks,
Queues. Solve 3-4 mixed medium problems from these topics.
○​ Concept: Practice problem recognition.
●​ Tuesday:
○​ Revision: Comprehensive review of Trees, Heaps, Graphs. Solve 3-4 mixed
medium/hard problems from these topics.
○​ Concept: Practice problem recognition.
●​ Wednesday:
○​ Revision: Comprehensive review of Recursion, Backtracking, Greedy, DP.
Solve 3-4 mixed medium/hard problems.
○​ Mock Interview 1: (Optional, but highly recommended) Find a peer or use an
online platform for a mock interview.
●​ Thursday:
○​ Mixed Problem Solving: Solve 5-6 random problems across all topics (mix
of easy/medium/hard). Focus on speed and accuracy.
○​ Mock Interview 2: (Optional) Another mock interview, focusing on areas
identified as weak from Mock 1.
●​ Friday:
○​ Final Review: Go through your personal list of commonly botched problems.
Review common interview questions (e.g., "Tell me about yourself," "Why this
company?").
○​ Strategy: Discuss problem-solving strategy, communication skills, and
whiteboard coding.
○​ Relax: Take it easy, trust your preparation!

You might also like