Skip to main content
  1. Sipping Go/

Data Structures & Algorithms, Level-up for Coding Interviews

·5 mins

Coding interviews, remain one of the challenging tasks for software developers, this course will teach you what you need to make it through this time.

Course Syllabus #

Welcome to Course! #

  • Course Orientation!
  • How to do this course?
  • C++/Java Code Repository!
  • TA Hours/ Doubt Support Guidelines
  • Exercise Solutions!
  • Q/A Section

Arrays & Vectors #

  • Introduction
  • Vector STL - Demo
  • Vector of Vector - Demo
  • How to submit coding exercises?
  • A Note on Sorting!
  • Helpful Webinars [Optional]
  • Pairs
  • Pairs Code
  • Triplets
  • Triplets Code
  • Mountain
  • Mountain Code
  • Longest Band
  • Longest Band Code
  • Rains
  • Rains Code
  • Subarray Sort
  • Subarray Sort Code
  • Minimum Swaps
  • Minimum Swaps Code

String Problems #

  • Strings Introduction
  • Searching Inside String!
  • Solution : Search All!
  • Space20
  • Space20 Implementation
  • Tokenisation (using sstream)
  • Tokenisation (using strtok)
  • Designing our own String Tokeniser!
  • String Key Sort
  • String Key Sort Implementation
  • Check Subsets
  • Check Subsets Implementation
  • Sort Subsequences
  • Sort Subsequences Code
  • Solution : String Normalisation

Bit-manipulation Techniques #

  • Bitwise Operators
  • Left Shift & Right Shift
  • Check Odd/Even
  • Get ith Bit
  • Set ith Bit
  • Clear ith Bit
  • Update ith Bit
  • Clear last i Bits
  • Replace Bits Challenge
  • Two Power
  • Counting Set Bits
  • Counting Bits Hack
  • Fast Exponentiation
  • Problem - Decimal to Binary

Sliding Window Problems #

  • Sliding Window Introduction
  • Housing (Two Pointer)
  • Housing Implementation
  • Unique Substring (Hashing)
  • Unique Substring Implementation
  • String Window
  • String Window Implementation

Sorting & Searching #

  • Merge Sort
  • Merge Sort Code
  • Inversion Count
  • Inversion Count Code
  • Quick Sort
  • Quick Sort Code
  • Quick Select
  • Quick Select Code
  • Smallest String
  • Smallest String Code
  • Sparse Search
  • Sparse Search Code
  • Binary Search - Recap!
  • Frequency Count
  • Frequency Count Code-I
  • Frequency Count Code-II
  • Rotated Search
  • Rotated Search Code
  • Finding Roots
  • Square Roots Code
  • Angry Birds
  • Angry Birds Code
  • Min Pairs
  • Min Pairs Code
  • Game of Greed Concept
  • Solution - Game of Greed
  • Solution : Game of Greed

Recursion Problems #

  • Recursion Recap
  • Ladders Concept
  • Ladders Code
  • Subsequence Based Problems
  • Subset Sum to X
  • Subset Sum to X Code
  • Generate Brackets
  • Generate Brackets Code
  • Smart Keypad
  • Smart Keypad Code
  • Permutations
  • N-Queen Problem
  • N-Queen Code
  • N-Queen Code
  • Sudoku
  • Sudoku Code

Linked Lists Problems #

  • Linked List Section Introduction
  • Warm Up - Creating a Linked List
  • Practice - Insertion in the Middle
  • Recursive Reverse a Linked List
  • Recursively Reverse a Linked List Code
  • Iterative Reverse
  • Iteratively Reverse a Linked List Code
  • K-Reverse a Linked List
  • K-Reverse Code
  • Merge Two Sorted Linked Lists
  • Merge Two Sorted Linked Lists Code
  • Runner Technique
  • Merge Sort on Linked List
  • Merge Sort Linked List Code

Stacks & Queue Problems #

  • Stacks, Queue, Deque Recap
  • Balanced Paranthesis
  • Balanced Paranthesis Code
  • Redundant Paranthesis
  • Redundant Paranthesis Code
  • First Non-Repeating Letter
  • First Non-Repeating Code
  • Max Subarray (Sliding Window + Deque)
  • Simplify Path
  • Simplify Path Code
  • Solution : Stock Span

Binary Trees Problems #

  • Binary Trees Recap
  • Build Tree - Boilerplate Code
  • Level Order Print
  • Level Order Print Code
  • Level Order Build
  • Level Order Build Code
  • Tree Diameter Concept
  • Tree Diameter Code
  • Tree Diameter Optimised Code
  • Replace with Descendant Sum
  • Replace with Descendant Sum Code
  • Height of Tree
  • Height Balanced Tree Concept
  • Height Balanced Tree Code
  • Max Subset Sum Tree
  • Max Subset Sum Tree Code
  • Print At LevelK
  • Nodes at Distance K
  • Nodes at Distance K Code
  • Vertical Order Print
  • Vertical Order Print Code

BST Problems #

  • BST Introduction
  • BST Creation Recap
  • Minimum Height BST
  • Minmum Height BST Code
  • Closest in BST
  • Closest in BST Code
  • Tree to Linked List
  • Tree 2 Linked List Code
  • Inorder Successor in BST
  • Inorder Successor in BST Code

Priority Queue Problems #

  • Heaps - Recap!
  • Sorting using Heap!
  • Finding Cabs
  • Finding Cabs Implementation
  • Merging Ropes
  • Merging Ropes Implementation
  • Running Median
  • Running Median Implementation
  • Merging K-Arrays
  • Merge K-Sorted Arrays Code

Hashing Problems #

  • Introduction to Hashing
  • Triplets in GP | Hashing with Slider
  • Triplets in GP Implementation
  • Counting Rectangles | Sets
  • Counting Rectangles Implementation
  • Counting Triangles | Unordered Maps
  • Counting Triangles Implementation
  • Anagrams in Substrings | Maps
  • Anagrams in Substrings Implementation
  • Quick Brown Fox | Hashing with DP
  • Quick Brown Fox Implementation

Tries & Pattern Matching Problems #

  • Tries Introduction
  • Prefix Trie Implementation
  • Suffix Trie
  • Suffix Trie Implementation
  • Cute Little Cat (Trie + Hashing)
  • Cute Little Cat Implementation
  • Biggest XOR (Trie + Bitmasks)
  • Biggest XOR Implementation

Graphs Problem Solving #

  • Graphs Section Introduction
  • Graphs 10 Cool Applications
  • Graph Key Terms
  • Adjacency List Representation
  • Adjacency List Representation with Node Class
  • Storing Weighted Graphs
  • Breadth First Search (BFS)
  • BFS Code
  • Shortest Path using BFS
  • Shortest Path using BFS Code
  • Solution - Snakes & Ladders
  • Depth First Search (DFS)
  • DFS Code
  • Cycle Detection in Undirected Graphs
  • Solution - Cycle Detection in Undirected Graph
  • Backedge Detection
  • Solution - Cycle Detection in Directed Graph
  • Dijkshtra’s Algorithm
  • Dijkshtra’s Algorithm Code
  • Board Game (Trie+Backtracking+Graph)
  • Board Game Implementation
  • Solution - Shortest Grid Path
  • Solution - Largest Island
  • Solution - Graph Sequence

Dynamic Programming (1D) #

  • Introduction to Dynamic Programming
  • A Note about DP
  • N-K Ladders (3 Approaches)
  • N-K Ladders Code (Top Down)
  • N-K Ladders Code (Bottom Up)
  • Coin Change
  • Coin Change Code
  • Cutting Rods Solved!
  • Min Array Jumps
  • Min Array Jumps Code
  • Frog’s Min Cost-I
  • Frog’s Min Cost-I Code
  • Maximum Non Adjacent Sum
  • Maximum Non Adjacent Sum Code
  • Longest Increasing Sequence
  • Longest Increasing Subsequence Code
  • Box Stacking Problem
  • Box Stacking Code
  • Counting Trees
  • Counting Trees Code
  • Counting Trees Bottom Up Code

Dynamic Programming (2D) #

  • Longest Common Subsequence
  • LCS Top Down
  • LCS Bottom Up & Print
  • Selling Wines
  • Selling Wines - Top Down DP Code
  • Note about Selling Wines
  • Selling Wines - Diagonal Table Filling
  • Selling Wines - Bottom Up DP Code
  • Counting Subsequences
  • Counting Subsequences Recursive
  • Counting Subsequences - Table Filling
  • Counting Subsequences - Bottom Up
  • Knapsack Problem
  • Knapsack Problem Recursive
  • Knapsack Problem Bottom Up

DSA Project - LRU Cache #

  • LRU Cache Introduction
  • LRU Data Structure
  • LRU Code-I
  • LRU Code - II
  • LRU Code - III
  • LRU Code - IV