0% found this document useful (0 votes)
0 views4 pages

ADS Syllabus

The syllabus outlines a comprehensive course on Advanced Data Structures, covering topics such as arrays, strings, recursion, backtracking, linked lists, stacks, trees, hash maps, priority queues, bit-masking, and dynamic programming. Each topic includes specific problems and algorithms to be addressed, along with their respective weightage in the course. The course aims to equip students with advanced problem-solving skills and techniques applicable in technical interviews and real-world scenarios.

Uploaded by

sampleweb07
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)
0 views4 pages

ADS Syllabus

The syllabus outlines a comprehensive course on Advanced Data Structures, covering topics such as arrays, strings, recursion, backtracking, linked lists, stacks, trees, hash maps, priority queues, bit-masking, and dynamic programming. Each topic includes specific problems and algorithms to be addressed, along with their respective weightage in the course. The course aims to equip students with advanced problem-solving skills and techniques applicable in technical interviews and real-world scenarios.

Uploaded by

sampleweb07
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
You are on page 1/ 4

Syllabus of the Course:

Subject: Advanced Data Structures Subject Code:22CS036


Topic(s) Lectures Weightage
Arrays and Advanced Array Algorithms -1: Frequency Arrays; Prefix Arrays; Two pointers
and problems related to above mentioned topics:
• Checking if two strings are anagrams.
• Finding the mode of an array in constant time after pre-processing.
• Finding the sum of elements within a given range. 6 6%
• Problems related to continuous subarrays, like finding maximum or minimum sums.
• Finding all pairs that sum up to a given value.
• Moving two pointers in opposite directions to find palindromes, meet in the middle,
etc.

Arrays and Advanced Array Algorithms -2: Advance Problems on Sorting:


• Sorting an array to find the kth smallest or largest element.
• Given an array with values representing colors (often {0, 1, 2} for three colors), sort
4 6%
them in place.
• In a sorted array, find two numbers that add up to a specific target. This problem can
be solved using two pointers after sorting.

Advanced String Algorithms: Implementation Problems on Strings, Two pointers in Strings


will be discussed and problems based on that.
• Check if a given string is a palindrome by ignoring non-alphanumeric characters and
case.
• Given two strings, find the smallest substring in the first string that contains all
characters of the second string. 6%
• Determine if a string can be constructed by repeating a substring.
• Finding exact matches of short strings within larger texts.
• Compress a string by replacing sequences of repeating characters with the character
followed by the count (e.g., "aaabb" becomes "a3b2").
• Basic Calculator: Parse and evaluate a simple arithmetic expression. 8
Sliding Window: Advance Problems on Sliding Window
• Find the longest substring where all characters are unique using The sliding window
approach
• Counting elements that satisfy a condition within a window (e.g., number of distinct 6%
characters in a substring).
• Given an array of integers and an integer K, find the maximum sum of a subarray of
length K. 6
Recursion: Basics of Recursion, basic problems on recursion to have better understanding of
the call stack, Types of Recursion. Problems:
• Given a sorted array, find the position of a target element using recursion.
• Generate all permutations of a string.
• Towers of Hanoi
Recursion Backtracking: Implementation based Problems on recursion will be discussed in a
thorough manner with call stacks, Introduction to Backtracking and problems on backtracking
15%
to get the flow of it:
• Given a set of distinct integers, generate all possible subsets (the power set).
• Place n queens on an n x n chessboard so that no two queens threaten each other.
• Given a grid where some cells are passable and others are blocked, find all paths for a
rat to move from the top-left to the bottom-right cell.
• Given an array of integers and a target, find all unique combinations where the sum
equals the target. 12
Advance problems on backtracking: Recursion on Matrix: Discussion on how recursion and
backtracking are used in general to solve problems on matrix/grid.
• Given a 2D grid of letters and a word, determine if the word can be constructed from
adjacent cells (horizontally or vertically).
• In a grid with obstacles, find the number of unique paths from the top-left to the
bottom-right corner.
• Solve a 9x9 Sudoku board by filling empty cells so each row, column, and 3x3 grid
contains unique digits from 1 to 9.
Linked List: Interview Based Problems on LL.
• Detect if a linked list has a cycle and remove it if one exists.
• Given two sorted linked lists, merge them into a single sorted list. 6%
• Determine if a linked list is a palindrome.
• Remove the N-th node from the end of a list in one pass. 4
Stacks: Interview Problems Based on Stacks.
• Given a string containing (, ), {, }, [, and ], determine if the string contains valid
parentheses.
• Design a stack that supports push, pop, top, and retrieving the minimum element in
constant time. 6%
• Given an array representing the heights of bars in a histogram, find the area of the
largest rectangle that can be formed.
• Given a circular array of integers, find the next greater element for each element. If no
such element exists, return -1. 8
Binary Trees and BST: Standard Problems on Binary Trees and Binary Search Trees;
Interview Problems Based on Trees.
• Given the root of a binary tree, return the inorder traversal of its nodes' values.
• Return the level order traversal of a binary tree's nodes.
• Find the maximum depth of a binary tree.
10%
• Given a binary search tree (BST) and two nodes, find their lowest common ancestor
(LCA).
• Return all root-to-leaf paths in a binary tree.
• Given preorder and inorder traversal of a tree, construct the binary tree.
• Find the k-th smallest element in a BST. 8
Hash maps : Advance Hashing Techniques, Interview Problems based Hashing etc.;
• Given a string and an integer K, find the length of the longest substring with at most K
distinct characters.
• Given two strings, s and t, find the smallest substring in s that contains all characters
6%
in t.
• Given a string, find the length of the longest substring without repeating characters.
• Given an array of integers and a target integer k, find the total number of subarrays
whose sum equals k. 8
Priority Queue and Greedy Algorithms: Advance Problems on Heaps. Implementation and
Advance Problems on Greedy.
• Find the kth largest element in an unsorted array.
• Given k sorted linked lists, merge them into one sorted list.
• Given a non-empty array of integers, return the k most frequent elements.
• Given a set of activities with start and finish times, select the maximum number of
activities that don't overlap.
• Given a set of characters and their frequencies, build the optimal prefix-free binary
tree for data compression (Huffman Coding) 10%
Bit-masking: Interview Based Problems on Bit Manipulations.
• Given an array of integers, every element appears twice except for one. Find that
single one.
• Given an integer n, count how many 1 bits it has (Brian Kernighan's Algorithm).
• Given an integer, reverse its bits.
• Given an integer n, find how many times the number 1 appears in the binary
representation of all numbers from 1 to n.
• Given a set of distinct integers, return all possible subsets (the power set). 15
DP - 1: DP company oriented questions and problems:
• Given two strings, find the longest substring they share. This can be solved with
dynamic programming or efficient rolling hashes.
• Find the longest palindromic substring in a given string. This can be solved by
expanding around centers or using dynamic programming.
• Identify the longest substring that appears at least twice. Often solved with suffix
arrays or suffix trees.
• Using dynamic programming to find the edit distance between two strings.
DP – 2: DP Patterns and Multi-dimensional DP
• Match patterns with wildcards in strings.
• Given a set of items, each with a weight and a value, determine the maximum value
you can carry in a knapsack of limited capacity, where you can take fractions of items.
• Given two strings, find the length of the longest subsequence that appears in both
18%
strings.
• Given an array of integers, find the length of the longest strictly increasing
subsequence.
• Given a set of coin denominations, find the minimum number of coins required to
make a given amount.
• Given two strings, find the minimum number of operations (insertions, deletions, and
substitutions) required to convert one string to another.
DP – 3: DP on Trees.
• Find the diameter of a binary tree. The diameter of a tree is the length of the longest
path between any two nodes in the tree.
• Find the maximum sum of values along any path from any node to any other node in a
binary tree. The path can start and end at any node and doesn't necessarily pass
through the root. 24
Graphs and Tries: Problems based on the graphs and Advance problems on Graphs.
• Given an undirected or directed graph, represent it using an Using dynamic
programming to find the edit distance between two strings.
• Given a graph, use BFS to find the shortest path from a starting node to all other
nodes.
• Given a graph, use DFS to traverse all nodes.
• Given a directed graph, detect if it contains a cycle.
• Given a graph with non-negative weights, find the shortest path from a source node 5%
to all other nodes using Dijkstra’s algorithm.
• Given a graph with weights (which could be negative), find the shortest path from
the source node to all other nodes using the Bellman-Ford algorithm.
• Given a directed acyclic graph (DAG), perform a Topological Sort.
• Given a connected, undirected graph with weighted edges, find the Minimum
Spanning Tree (MST) using Kruskal’s Algorithm.
• Basic problems, Range Queries and Interview Problems on Tries. 10

You might also like