Data Structures and Algorithms
Self Paced Course
Learn Data Structures & Algorithms at your own pace to prepare for top product-based companies like Amazon, Uber, Adobe, etc
Students, Working Professionals

4999 2499


Online Course
Live: DSA-self paced
LIVE
Course Rating
4.8

Course Overview

This course is for all those people who want to learn Data Structures and Algorithms from basic to advance level. We don't expect you to have any prior knowledge of Data Structure and Algorithms, but a basic prior knowledge of any programming language ( C++ / Java) will be helpful. This course gives you the flexibility of learning, under this program you can study your course whenever you feel like, you need not hurry or puzzle yourself.
Study and learn at your own pace

Why opt for this course?

This course is focused on Data Structures & Algorithms and will help you to prepare for product-based companies like Microsoft, Amazon, Adobe, etc. This is an online learning program which can be completed according to your pace. The course curriculum has been divided into 10 weeks where you can practice the question & attempt the Contest according to your time convenience.
The course content includes pre-recorded premium Video lectures & programming questions for practice. You will learn algorithmic techniques for solving various computational problems and will implement more than 200 algorithmic coding problems. This course offers you a wealth of programming challenges that you may face at your next job interview. The course focuses mainly on Data Structure & Algorithms: the key to selection in top product-based companies.
Recommended for:
  • Pre-Final/Final year students preparing for the Placement drives
  • Employees looking for a job change

How this course will guide you through your Interview?

  • Premium video lectures recorded by the industry experts.
  • You will be performing more interview centric programming questions.
  • Ample amount of algorithm coding problems to make you efficient for any big Interview.
  • Online contest to prepare for your online coding interview rounds.

Course Features

  • Lifetime access for the Course Content, Video & Discussion forum 

  • Premium Lecture videos by Mr. Sandeep Jain (CEO & Founder, GeeksforGeeks)

  • Tracks consist of theory & practice problem

  • Weekly Assessment Tests with Video Solutions

  • Course Completion Certificate

  • Internship Opportunities at GeeksforGeeks

 

 

 

 

Course Content

  • Analysis of Algorithm 

    • Background analysis through a Program and its functions.

  • Order of Growth 

    • A mathematical explanation of the growth analysis through limits and functions.

    • A direct way of calculating the order of growth

 

  • Asymptotic Notations

    • Best, Average and Worst case explanation through a program.

  • Big O Notation

    • Graphical and mathematical explanation.

    • Calculation

    • Applications at Linear Search

  • Omega Notation

    • Graphical and mathematical explanation.

    • Calculation.

  • Theta Notation

    • Graphical and mathematical explanation.

    • Calculation.

  • Analysis of common loops

    • Single, multiple and nested loops

  • Analysis of Recursion

    • Various calculations through Recursion Tree method

  • Space Complexity 

    • Basic Programs

    • Auxiliary Space

    • Space Analysis of Recursion

    • Space Analysis of Fibonacci number

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Finding the number of digits in a number.

  • Arithmetic and Geometric Progressions.

  • Quadratic Equations.

  • Mean and Median.

  • Prime Numbers.

  • LCM and HCF

  • Factorials

  • Permutations and Combinations

  • Modular Arithmetic

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Bitwise Operators in C++

    • Operation of AND, OR, XOR operators

    • Operation of Left Shift, Right Shift and Bitwise Not

  • Bitwise Operators in Java

    • Operation of AND, OR

    • Operation of Bitwise Not, Left Shift

    • Operation of Right Shift and unsigned Right Shift

  • Problem(With Video Solutions): Check Kth bit is set or not

    • Method 1: Using the left Shift.

    • Method 2: Using the right shift

  • Problem(With Video Solutions): Count Set Bits

    • Method 1: Simple method

    • Method 2: Brian and Kerningham Algorithm

    • Method 3: Using Lookup Table

  • Problems(With Video Solutions):

    • To check whether a number is a power of 2 or not

    • Odd occurrences in an array.

    • Two numbers having odd occurrences in an array.

    • Generate power set using bitwise operators.

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Explanation using examples

  • Writing base cases in Recursion

    • Factorial

    • N-th Fibonacci number

  • Various problems on Recursion(With Video Solutions)

    • Print n to 1

    • Tail Recursion

    • Checking Palindrome

    • Sum of digits

    • Rod cutting

    • Subsets of a set

    • Tower of Hanoi Problem

    • Josephus Problem

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction and Advantages

  • Types of Arrays

    • Fixed-sized array

    • Dynamic-sized array

  • Operations on Arrays

    • Searching

    • Insertions

    • Deletion

    • Arrays vs other DS

    • Reversing - Explanation with complexity

  • Problems(With Video Solutions)

    • Left Rotation of the array by 1

    • Left Rotation of the array by D places

    • Leaders in an Array

    • Maximum Difference Problem

    • Stock Buy and Sell Problem

    • Trapping Rainwater Problem

    • Maximum subarray sum

    • Longest even-odd subarray

    • Maximum Circular sum subarray.

    • Majority Element

    • Sliding Window Technique

    • Prefix sum technique

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Binary Search and various associated problems(With Video Solutions)

    • Leftmost index of an element in an array

    • Count of occurrences of x in sorted element

    • Count of 1s in a binary sorted array

    • Find an element in sorted and rotated array

    • Peak element

    • Find an element in an infinite sized sorted array

    • The square root of an integer

  • Two Pointer Approach Problems(With Video Solutions)

    • Find pair in an unsorted array which gives sum X

    • Find pair in a sorted array which gives sum X

    • Find triplet in an array which gives sum X

  • Problems(With Video Solutions)

    • Median of two sorted arrays 

    • Majority Element 

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Implementation of C++ STL sort() function in Arrays and Vectors

    • Time Complexities

  • Sorting in Java

  • Arrays.sort() in Java

  • Collection.sort() in Java

  • Stability in Sorting Algorithms

    • Examples of Stable and Unstable Algos

  • Insertion Sort

  • Merge Sort

  • Problems(With Video Solutions)

    • Intersection of 2 sorted arrays

    • Union of 2 sorted arrays

    • Count Inversions in arrays

  • Partitions(With Video Solutions)

    • Naive

    • Lomuto

    • Hoare

  • Quick Sort

    • Using Lomuto and Hoare

    • Time and Space analysis

    • Choice of Pivot and Worst case

    • Tail call elimination

  • Problems(With Video Solutions)

    • Kth Smallest element

    • Chocolate Distribution Problem

    • Sorting arrays with 2 and3 types of elements

    • Merge Overlapping Intervals

  • Cycle Sort

  • Counting Sort

  • Radix Sort

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction to Matrix in C++ and Java

  • Printing matrix in a snake pattern

  • Transposing a matrix

  • Rotating a Matrix

  • Check if the element is present in a row and column-wise sorted matrix.

  • Boundary Traversal

  • Spiral Traversal

  • Matrix Multiplication

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction and Time complexity analysis

  • Application of Hashing

  • Discussion on Direct Address Table

  • Working and examples on various Hash Functions

  • Introduction and Various techniques on Collision Handling

  • Chaining and its implementation

  • Open Addressing and its Implementation

  • Chaining V/S Open Addressing

  • Double Hashing

  • C++

    • Unordered Set

    • Unordered Map

  • Java

    • HashSet

    • HashMap

  • Problems(With Video Solutions):

    • Count Distinct Elements

    • Count of the frequency of array elements

    • The intersection of two arrays

    • Union of two unsorted arrays

    • Pair with given sum in an unsorted array

    • Subarray with zero-sum

    • Subarray with given sum

    • Longest subarray with a given sum

    • Longest subarray with an equal number of 0’s and 1’s

    • Longest common span with the same sum in a binary array

    • Longest Consecutive Subsequence

    • Count Distinct elements in every window

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Discussion of String DS

  • Problems(With Video Solutions):

    • Given a string, check if they are an anagram of each other.

    • Given a string, find the leftmost character that repeats.

    • Given a string, find the leftmost character that does not repeat.

    • ​Given a string, find the lexicographic rank of it in O(n) time.

    • Implementation of the previously discussed lexicographic rank problem.

    • Given a text string and a pattern string, find if a permutation of the pattern exists in the text.

    • Given two strings, check if they are rotations of each other or not.

    • Various Pattern Searching Algorithms.

  • Rabin Karp Algorithm

  • KMP Algorithm

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction

    • Implementation in CPP

    • Implementation in Java

    • Comparison with Array DS

  • Doubly Linked List

  • Circular Linked List

  • Loop Problems

    • Detecting Loops

    • Detecting loops using Floyd cycle detection

    • Detecting and Removing Loops in Linked List

  • Problems(With Video Solutions):

    • Middle of Linked List

    • Nth node from the end of linked list

    • Deleting a Node without accessing Head pointer of Linked List

    • An iterative method to Reverse a linked list 

    • Recursive method to reverse a linked list

    • Segregating even-odd nodes of linked list

    • The intersection of two linked list

    • Pairwise swap nodes of linked list

    • Clone a linked list using a random pointer

    • LRU Cache Design

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Understanding the Stack data structure 

  • Applications of Stack

  • Implementation of Stack in Array and Linked List

    • In C++

    • In Java 

  • Problems(With Video Solutions):

    • Balanced Parenthesis 

    • Two stacks in an array 

    • K Stacks in an array 

    • Stock span problem with variations

    • Previous Greater Element 

    • Next Greater Element 

    • Largest Rectangular Area in a Histogram

  • Understanding getMin() in Stack with O(1)

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction and Application

  • Implementation of the queue using array and LinkedList

    • In C++ STL

    • In Java

    • Stack using queue

  • Problems(With Video Solutions)

    • Reversing a Queue

    • Generate numbers with given digits

    • Maximums of all subarrays of size k

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction

    • Tree

    • Application

    • Binary Tree

    • Tree Traversal

  • Implementation of:

    • Inorder Traversal 

    • Preorder Traversal 

    • Postorder Traversal 

    • Level Order Traversal (Line by Line)

    • Tree Traversal in Spiral Form 

  • Problems(With Video Solutions):

    • Size of Binary Tree 

    • Maximum in Binary Tree 

    • Height of Binary Tree 

    • Print Nodes at K distance 

    • Print Left View of Binary Tree 

    • Children Sum Property 

    • Check for Balanced Binary Tree 

    • Maximum Width of Binary Tree 

    • Convert Binary Tree to Doubly Linked List 

    • Construct Binary Tree from Inorder and Preorder 

    • The diameter of a Binary Tree 

    • LCA problem with an efficient solution

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Background, Introduction and Application

  • Implementation of Search in BST

    • In CPP 

    • In Java

  • Insertion in BST 

    • In CPP

    • In Java

  • Deletion in BST 

    • In CPP

    • In Java

  • Floor in BST 

    • In CPP

    • In Java

  • Self Balancing BST 

  • AVL Tree 

  • Red Black Tree 

  • Set in C++ STL 

  • Map in C++ STL 

  • TreeSet in java 

  • TreeMap in Java 

  • Problems(With Video Solutions):

    • The ceiling of a key in BST

    • Ceiling on the left side in an array 

    • Find Kth Smallest in BST 

    • Check for BST 

    • Fix BST with Two Nodes Swapped 

    • Pair Sum with given BST 

    • Vertical Sum in a Binary Tree 

    • Vertical Traversal of Binary Tree 

    • Top View of Binary Tree 

    • Bottom View of Binary Tree

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction & Implementation

  • Binary Heap 

    • Insertion

    • Heapify and Extract

    • Decrease Key, Delete and Build Heap

  • Heap Sort 

  • Priority Queue in C++ 

  • PriorityQueue in Java

  • Problems(With Video Solutions): 

    • Sort K-Sorted Array 

    • Buy Maximum Items with Given Sum 

    • K Largest Elements 

    • Merge K Sorted Arrays 

    • Median of a Stream

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction to Graph 

  • Graph Representation 

    • Adjacency Matrix

    • Adjacency List in CPP and Java

    • Adjacency Matrix VS List

  • Breadth-First Search 

    • Applications

  • Depth First Search 

    • Applications

  • Problems(With Video Solutions):

    • Shortest Path in an Unweighted Graph 

    • Detecting Cycle

      • In the Undirected Graph 

      • In the Directed Graph

    • Topological Sorting 

      • Kahn's BFS Based Algorithm

      • DFS Based Algorithm

  • Shortest Path in Directed Acyclic Graph 

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction

  • Activity Selection Problem

  • Fractional Knapsack 

  • Job Sequencing Problem

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Concepts of Backtracking 

  • Rat In a Maze 

  • N Queen Problem 

  • Sudoku Problem 

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction 

  • Dynamic Programming

    • Memoization 

    • Tabulation

  • Problems(With Video Solutions):

    • Longest Common Subsequence

    • Coin Change Count Combinations 

    • Edit Distance Problem

      • Naive Approach

      • DP Approach

    • Longest Increasing Subsequence Problem

      • Naive Approach

      • Efficient Approach

    • Maximum Cuts 

    • Minimum coins to make a value 

    • Minimum Jumps to reach at the end 

    • 0-1 knapsack problem 

      • Naive Approach

      • Efficient Approach

    • Optimal Strategy for a Game 

    • Variation of Longest Common Subsequence 

    • Variation of Longest Increasing Subsequence 

    • Egg Dropping Problem 

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 

 
  • Prim's Algorithm/Minimum Spanning Tree

  • Dijkstra's Shortest Path Algorithm

  • Bellman-Ford Shortest Path Algorithm

  • Kosaraju's Algorithm

  • Articulation Point

  • Bridges in Graph

  • Tarjan’s Algorithm

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction

    • Representation

    • Search

    • Insert

    • Delete

  • Count Distinct Rows in a Binary Matrix

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction

  • Construction

  • Range Query 

  • Update Query

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 
  • Introduction

  • Find and Union Operations

  • Union by Rank

  • Path Compression

  • Kruskal's Algorithm

  • Practice Problems

    • This track contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

 

 

 

 

 
Show More

FAQs

  1. What does Self-Paced mean?
    You can join the course anytime. All of the content will be available once you get enrolled. You can finish it at your own decided speed.
     

  2. Is there any number to contact for any query?
    You may call us on our toll-free number: 1800 123 8622  or Drop us an email at geeks.classes@geeksforgeeks.org
    ​​​​​
  3. Does the course include programming questions?
    Yes, the course focuses on DS & Algo with a mix of theoretical lectures and programming questions.

  4. Do we have doubt support in this program?
    No, This program doesn't have doubt solving support.  You may register for DSA- self-paced with Doubt solving.

  5. Is this a language-specific course?
    Yes, the course is only in C++ & Java.  In case you are not familiar with these languages, you may join one of the free courses, Fork CPP and Fork Java to best utilize this course.

  6. What do I learn if I am a Python Programmer?
    If you are a Python programmer, you get the following.
    1) The theory part of videos, algorithms in videos.  Note video explanations of implementations are specific to C++ and Java only
    2) Practice Questions will be in Python
    3) Forum support will be there in Python.
    It is recommended to prepare yourself with Fork Python if you are beginning with Python

  7. How can I access contest solutions?
    Contest solutions are available in Video mode in the contest section itself.

  8. When can i access the video solution of Contest problems?
    Once you've appeared in the online contest you can access the solutions. 

  9. How can I register for the course?
    You need to sign up for the course. After signing up, you need to pay when the payment link opens.

  10. What type of certificate will be offered in this program
    Once the course is completed. You'll be getting a course completion certificate.

  11. When can I make the payment for the course?
    The payment link will be available on the course page.

  12. Will the course content be available after the course end date?
    Yes, the Courses content come with a lifetime validity 

  13. Is there a sample video to see how are course videos?
    Yes, please see this video.

  14. Can I make the payment through PayPal?
    Yes. Mail us with your details at geeks.classes@geeksforgeeks.org.

 

 

 

Course Registration

Batch Date Type Register
DSA-self paced LIVE Online Classes