Data Structures & Algorithms Essentials using C++
-
Introduction
-
Code Repository
-
ArrayArray Introduction0sArrays – Input, Ouput, Update0sArrays & Functions – Pass by Reference0sA Note about Space Time Complexity!Linear Search0sBinary Search0sBinary Search Code0sArray Reverse0sPrinting Pairs0sPrinting Subarrays0sSubarray Sum – I (Brute Force)0sSubarray Sum – II (Prefix Sums)0sSubarray Sum – III (Kadane’s Algorithm)0sA Note about Coding Exercises!Vectors Introduction0sVectors (Demo)0sLargest ElementSolution – Largest Element0sMaximum Subarray SumSolution – Maximum Subarray Sum0sLower BoundSolution – Lower Bound0sSorted Pair SumSolution – Sorted Pair Sum0sK-RotateSolution – K Rotate0sSolution – K-Rotate Optimised (InPlace)0sArrays Quiz
-
Basic Sorting AlgorithmsSorting Introduction0sBubble Sort0sBubble Sort Code0sOptimized Bubble SortInsertion Sort0sInsertion Sort Code0sSelection Sort0sSelection Sort Code0sInbuilt Sort & Comparators0sCounting Sort0sCounting Sort Code0sSorting with ComparatorSorting Cartesian PointsChopsticksDefense KingdomSection 4 – Basic Sorting Algorithms
-
Character Arrays/StringsCharacter Arrays Introduction0sUsing cin.get()0sDigits & Spaces0sUsing cin.getline()0sShortest Path0sString Copy, Compare, Concat!0sSolution : Largest String0sCheck PalindromeNote : String ClassString Class0sString CompressionRun Length Encoding0sAre PermutationRemove DuplicatesVowel FindBinary String to NumberSection 5 – Character Arrays/Strings
-
2D Arrays
-
Pointers & Dynamic Memory
-
Vector Data StructureVector0sVectors – How they grow?0sUsing Vector Container0s2D Vector using STL0sVector Class – I0sVector Class – II0sVector Class – III0sHeader Files & Template Classes0sInbuilt Searching0sSorting a Complex Vector!0sSorting Cabs!Sort Fruits!Rotate ImageMake ZeroesSection 8 – Vector Data Structures
-
Bit ManipulationBitwise Operators0sLeft Shift & Right Shift0sOdd Even0sGet ith Bit0sSet ith Bit0sClear ith Bit0sUpdate ith Bit0sClear Last i Bits0sClear Range of Bits0sReplace Bits0sTwo Power0sCount Bits0sCount Bits – Hack0sFast Exponentiation0sMake it Binary!0sXoringModulo ExponentiationEarth Levels!Subset Sum QueriesSection 9 – Bit Manipulation
-
Recursion BasicsRecursion Introduction0sFactorial0sFibonacci Series0sSorted Array Check!0sUnderstanding Recursion Directions0sFirst Occurence0sFirst Occurence Code0sLast Occurence0sLast Occurence Code0sAll Occurence!Print Increasing NumbersPower Function0sPower Function Optimised0sBubble Sort0sNumber Spell0sTiling Problem!Tiling Problem Solution0sBinary Strings!Binary Strings Solution0sFriends’ Party!Friend’s Party Solution0sSection 10 – Recursion Basics
-
Divide & Conquer
-
BacktrackingBacktracking Introduction0sBacktracking on Arrays Code0sBactracking on Vectors Code0sFinding Subsets0sFinding Subsets Code0sOrdering Subsets0sPermutations0sN-Queen Problem0sN-Queen Code0sN-Queen All Ways0sGrid Ways0sGrid Ways – Math Trick!0sSudoku0sSudoku Code0sN-Queen WaysRat and MiceWord Break ProblemUnique SubsetWord SearchSection 12 – Backtracking
-
Space & Time Complexity Analysis
-
Object Oriented Programming
-
Linked List
-
StacksStack Data Structure0sStack Implementations0sStack using Linked List0sStack using Vector0sStack STL0sStack Insert At Bottom Challenge!0sRecursively Reverse a Stack0sReverse a number using stackStock Span ProblemStock Span Solution0sNext Greater ElementDuplicate ParenthesesMaximum Rectangular Area in HistogramSection 16 -Stacks
-
Queue
-
Binary TreeBinary Tree Introduction0sBuild Tree Preorder0sPreorder Traversal0sInorder Traversal0sPostorder Traversal0sLevel Order Print0sLevel Order Print Code0sLevel Order Build0sLevel Order Build Code0sHeight of Tree0sK-th LevelSum of NodesTree Diameter0sDiameter Code-I0sDiameter Code-II0sMin DepthSymmetric TreeExpression TreeRemove Half NodesTarget Path SumSection 18 – Binary Trees
-
Binary Search Tree
-
Heaps / Priority QueueIntroduction to Heap0sHeap vs other Data Structure0sHeaps as CBT0sHeaps as Array0sInsertion0sInsertion Code0sRemove Min/ Max0sRemove Min/ Max Code0sMaximum ProductPriority Queue STL0sNearby Cars0sNearby Cars Code0sReduced array size to halfWeakest RowsRelative RanksSection 20 – Heaps
-
HashingIntroduction to Hashing0sHash Functions0sCollision Handling0sHashing Code – I (Setup)0sHashing Code – II (Insertion)0sHashing Code – III (Rehashing)0sTesting our Hashtable0sHashing Code – IV (Search)0sHashing Code – V (Erase)0sHashing Code – VI (Operator [] Overloading)0s[Webinar] Unordered Maps & Unordered SetsArray Intersection!K-Sum SubarraySection 21 – Hashing
-
Trie Data Structure
-
Graphs IntroductionGraphs Introduction0sGraph Applications0sAdjacency List Representation0sAdjacency List Representation with Node Class0sBFS0sBFS Code0sDFS0sDFS Code0sTopological Ordering0sKahn’s Algorithm (Modified BFS)0sTopological Ordering using BFS Code0sDijkshtra’s Algorithm0sDijkshtra’s Algorithm Code0sKeys and RoomsAll Paths From Source to TargetFind Star in the graphSection 23 – Graphs
-
Dynamic Programming BasicsDynamic Programming Basics0sCoin Change0sCoin Change Code0sLongest Common Subsequence (LCS)0sLongest Common Subsequence Code0sKnapsack Problem0sKnapsack Problem Code0sWines Problem0sWines Problem – II0sWines – III0sWines – IV0sCoin ChangeVacationOptimal Game StrategyMinimum PartitioningSection 24 – Dynamic Programming
-
Project – Shopping Cart Backend
Are you a beginner looking to enter the world of Data Structures or intermediate programmer wondering what happens behind a Hash-table?
Welcome to Data Structures & Algorithms, Essentials Course – the only course you need to understand the core concepts behind Data Structures & build a solid programming foundations using C++ . 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 and is top rated on Xlbake for his amazing teaching skills.
Every software application revolves around data, performing different operations like Insert, Delete, Update & Search. To be a great software developer, understanding of Data Structures & Algorithms is must and this course provides you a deep understanding of the topic by covering both the theory and hands-on-implementation of each data structure from scratch.
The Course contains 20+ hours of interactive video content & dozens of coding exercises, teaching you all essential concepts starting from ground zero. Each section covers data structure in great detail, with Coding Exercises & real life examples. Here is what you will learn –
Programming Concepts
Bit masking
Object Oriented Programming Basics
Pointers & Dynamic Memory (C++)
Recursion
Data Structures Foundation
Array, 2D Array, Strings, Vectors
Linked Lists, Stacks, Queues
Trees, BST, Tries
Heaps/Priority Queues
Hash-tables, Collision Handling
Graphs
Algorithms Foundation
Brute Force, Backtracking
Sorting & Searching
Divide & Conquer
Dynamic Programming
The course is designed for beginner & intermediate programmers. We try to make not so easy topics look easy with intuitive explanations & interactive video lectures with dozens of memes 😉 The course finishes with a final mini project – a command line app for an online shopping cart combining principles from Object Oriented Programming & Data Structures.
Unlike most instructors, we are not a salesperson or a marketer. My job is to help you build strong fundamentals in programming & be a successful developer. Through Xlbake & Coding Minutes, 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.
What's included
- 28 hours on-demand video
- 75 coding exercises
- 10 articles
- 1 downloadable resource
- Access on mobile and TV
- Certificate of completion