Software Engineering


Data Structures & Algorithms, Level-up Course(2021)

The only course you need to master problem solving using Data Structures & Algorithms in C++

4.67 (1059 reviews)


28.5 hours


Jul 2021

Last Update
Regular Price

Unlimited access to 30 000 Premium SkillShare courses

What you will learn

Accelerate your algorithmic thinking

Learn to optimise brute force solutions

Learn to apply data structures

Learn to write complex codes

150+ carefully curated problems

Analysis of space-time complexity

Using C++ Standard Template Library

Become a 10x Problem Solver

Sliding Window, Hashing, Maps & Sets

Master Dynamic Programming & Graphs

BONUS : Build a LRU Cache

Practice Questions on all important topics


Do you find yourself feeling like you get "stuck" every time you get a coding question? 

Welcome to Data Structures & Algorithms, Level up Course the only course that provides you an ultimate practice on problem solving process and helping you to take your data structures & algorithms to the next level.  The course is taught by an expert instructor Prateek Narang from Google, who is not just a software engineer but also has mentored thousands of students in becoming great programmers & developers.

The Course contains 25+ hours of interactive video content & dozens of coding exercises, teaching you the right tips & tricks in problem solving in a most concise way. Every problem discussion starts with a brute force approach, optimisations and ends with hands-on-coding video in C++ as well.

Here is what you will learn -

Problems on Data Structures

* Arrays, Strings, Vectors

* Hashing (Unordered Maps, Maps, Sets)

* Stacks, Queues, Linked Lists

* Binary Trees, BSTs, Heaps

* Graphs, Tries

Problems on Algorithms

* Brute force, Backtracking

* Sliding Window Algorithms

* Sorting, Searching, Binary Search

* Dynamic Programming Fundamentals

* Important Graph Algorithms

* BFS & DFS, Shortest Paths

Course exercises are in C++ but programmers having experience in one or more languages (C++/Java/Python/JavaScript) can definitely do this course, provided they have fundamental understanding of data structures. The course covers both breadth & depth of topics, diving deep where-ever needed. You will also learn how to apply techniques involving like - sorting & searching algorithms, sliding window, binary search, hashing which are very important for problem solving. For advanced topics like Dynamic Programming & Graphs, the course starts from the basics & helps you master these topics from the very fundamentals.

Unlike most instructors, I am not a salesperson or a marketer. My job is to help you build strong fundamentals in programming & be  a successful developer. Through Udemy, I am providing this course to you at a fraction of cost of its original cost, so that anyone who is interested to learn can take their skills to the next level. So I hope you sign up today, and I will see you in the course.


Data Structures & Algorithms, Level-up Course(2021)
Data Structures & Algorithms, Level-up Course(2021)
Data Structures & Algorithms, Level-up Course(2021)
Data Structures & Algorithms, Level-up Course(2021)


Welcome to Course!

Course Orientation!

How to do this course?

Course Updates & FAQ's!

Arrays & Vectors


Vector STL - Demo

Vector of Vector - Demo

How to submit coding exercises?

FizzBuzz Test

A Note on Sorting!


Pairs Code


Triplets Code


Mountain Code

Longest Band

Longest Band Code


Rains Code

Subarray Sort

Subarray Sort Code

Minimum Swaps

Minimum Swaps Code

Maximum Subarray Sum

Minimum Difference

Array Products

Busy Life

Arrays & Vectors Quiz!

String Problems

Strings Introduction

Searching Inside String!

Warm Up - Search All!

Solution : Search All!


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

Digital Clock

Biggest Number String

Run Length Encoding

Palindrome Break

String Normalisation

Strings Quiz!

Sliding Window Problems

Sliding Window Introduction

Housing (Two Pointer)

Housing Implementation

Unique Substring (Hashing)

Unique Substring Implementation

String Window

String Window Implementation

Smallest Distinct Window

Sliding Window Maximum

Count Subarrays with Target Sum

Sliding Window Quiz

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

Staircase Search

ICPC Standings

Juggling Balls

Sorting Subarray

Sorting & Searching Quiz

Binary Search

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

Solution : Game of Greed

Reading Books

Binary Search Quiz

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


Sorted Permutations


Sudoku Code

Modulo Exponentiation

Sudoku Solver


Game of Coins

Game of coins - Advanced

Rat in a Maze

Longest Possible Route

Recursion Quiz!

Linked Lists Problems

Linked List Section Introduction

Warm Up - Search!

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

Middle Element

K-th Last

Merge Sort on Linked List

Merge Sort Linked List Code

Detect Cycle in a Linked List

Stacks & Queue Problems

Stacks, Queue, Deque Recap

Balanced Paranthesis

Balanced Paranthesis Code

Redundant Paranthesis

Redundant Paranthesis Code

First Non-Repeating Letter

First Non-Repeating Character

First Non-Repeating Code

Max Subarray (Sliding Window + Deque)

Simplify Path

Simplify Path

Simplify Path Code

Stock Span Problem

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 Balanced Tree Concept

Height Balanced Tree Code

Max Subset Sum Tree

Max Subset Sum Tree Code

Print At LevelK

Nodes at Distance K

Sorted Nodes at Distance K

Nodes at Distance K Code

Vertical Order Print

Vertical Order Print Code

Left View

Siblings Swap!

BST Problems

BST Introduction

BST Creation Recap

Warm Up - BST Search!

Minimum Height BST

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


Special BST!


Shortest Tree Path

Priority Queue Problems

Heaps - Recap!

Sorting using Heap!

Finding Cabs

Finding Cabs Implementation

Merging Ropes

Merging Ropes Implementation

Running Median

Running Median Implementation

Running Median Class

Merging K-Arrays

Merge K-Sorted Arrays

Merge K-Sorted Arrays Code

Heaps Quiz

Hashing Problems

Warm Up-Common Elements

Warm Up - First Repeating Letter!

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

Break the chain!

Minimum Bars

Group Anagrams

Longest k-sum Subarray

Hashing Quiz

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

Maximum XOR Pair

Prateek Bhaiya & Googly Strings!

Phone Numbers Search

Tries MCQ Quiz

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

Snakes & Ladders Game

Depth First Search (DFS)

DFS Code

Cycle Detection in Undirected Graphs

Cycle Detection I - Undirected Graph

Solution - Cycle Detection in Undirected Graph

Backedge Detection

Cycle Detection II - Directed Graph

Solution - Cycle Detection in Directed Graph

Dijkshtra's Algorithm

Dijkshtra's Algorithm Code

Board Game Implementation

Board Game (Trie+Backtracking+Graph)

Shortest Grid Path

Solution - Shortest Grid Path

Largest Island

Solution - Largest Island

Astronaut Pairs

Graph Sequence (Graph + DP)

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

Frog Jump 2 (AtCoder)

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

Coin Change 2

Game of Wits


Edit Distance

Wildcard Pattern Matching

Palindromic Partitioning

DSA Project - LRU Cache

LRU Cache Introduction

LRU Data Structure

LRU Code-I

LRU Code - II

LRU Code - III

LRU Code - IV


Raghav6 June 2021

The value provided by this course is very high specially when you compare it's cost with other courses of its kind in the market.

Chaitanya6 June 2021

I was preparing DS and Algorithms since few years now on and off. But this is well structured and upon proper practice of all the patterns explained in this videos curriculum one can definitely crack a coding interview and develop a good problem solving nature (by practice). Thanks Prateek Bhai

Priyanshu5 June 2021

Coding Blocks videos of Prateek were better. There's a lots of things missing, like no complexity discussion at end of questions, and a kind of rush in sake of completing the course. But I believe Prateek will work on it as well in future to improve the quality. Talking about content, It's best out there, it's Prateek Narang after all. This course at such a price is steal deal.

Vinamr2 June 2021

This course by Prateek Bhaiya is actually amazing, IF you are someone who has done the basics of DS that is till Arrays and Recursion. This is the best course you could have asked for, interesting problems and way more interesting discussions on them. Have not found any course like this. Much love to prateek bhaiya for doing this!

Varun1 June 2021

First of all I would like to say Thank you prateek bhaiya... Dil se shukriya bhaiya apka... Apne aise pandemic situation m ham sab learners k liye itne kam cost m itna accha content provid karaya ...... Well structured course material . I think every student who want to learn something better should join this course. Bhaiya please keep providing these type of courses especially Competitive programming . Thankyou ?

Muthuvalliappan31 May 2021

Prateek Bhaiya'z way of teaching is awesome...Explains every tough problems in a simple way and implements in a simple code solution...Once again Thank you for creating this superb course using cpp....All the team members (TA team) are doing excellent work here dhanyavaad...

Sachin23 May 2021

I am working professional currently working in service based company.I want to switch to product based company.I have started implementing the problem set in my preferred language JAVA.The problemset and their explanation by Prateek sir is really top notch.In market this course will be easily selling around the price 10k.You can't get a better course at a better price than this.

Parika22 May 2021

Very good course, but strangely all discussion forum is crowded and polluted by people asking for adding new modules, thus due to that, doubts in existing course is taking longer to resolve. As far as content is concerned, its very good, Maybe an improvement can be to add a text file with time complexities of that question as a lecture resource so that we can verify ourselves.

Mahima22 May 2021

There was an indeed demand for good course of ds and algo , which u have satisfied . Thanks for explaining even simple things in detail. Future dev can learn everthing very easily.Kudos to your work.

Anish21 May 2021

This is the best dsa level up course.I would recommend this to everyone who has basic knowledge on how to implement data structures. Prateek Narang is one of the best mentor of dsa in the world. I have already done one course designed by him and he explains each and every concept in a very simplified manner which gave me confidence to participate in competitive programming challenges. Thank you so much.

Syed20 May 2021

i had been already taken your course on coding block ...but when i see u launch ur own course i purchase it .....happy learning

Prakhar20 May 2021

I have always been a fan of prateek bhaiya's style of teaching . Looking at him actually inspired me to teach my friends DSA and improving myself on the go . I'd say take this course if you have some base and you'll do wonders!

Greg19 May 2021

I don't usually give a rating so early in a course, but if the first 15 minutes is any indication of the what the rest of the course will be, this will definitely be a 5 star course. Problems are great and the explanations are even greater.

Vidushi18 May 2021

I have been trying to understand some advanced topics of DSA for the past one month and this course is like a life saver. It contains all the necessary problems with the most efficient solution.

Abhinandan18 May 2021

I am really enjoying your course because I am learning new things not only in advanced t topics but also the easier one . I don't know why I'm just loving your lectures. I am very thankful to you for making me to utilize my time in this lockdown.


5/17/202192% OFFExpired
6/1/202192% OFFExpired


Udemy ID


Course created date


Course Indexed date
Course Submitted by