Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • For Working Professionals
      • Data Structure & Algorithm Classes (Live)
      • System Design (Live)
      • JAVA Backend Development(Live)
      • DevOps(Live)
      • Data Structures & Algorithms in Python
    • For Students
      • Interview Preparation Course
      • GATE CS & IT 2024
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced(C++/JAVA)
      • Master Competitive Programming(Live)
      • Full Stack Development with React & Node JS(Live)
    • For School Students
      • CBSE Class 12 Computer Science
      • School Guide
      • Python Programming Foundation
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
      • DSA for Beginners
      • Data Structures
        • Arrays
        • Matrix
        • Strings
        • Linked List
          • Singly Linked List
          • Doubly Linked List
          • Circular Linked List
          • Doubly Circular Linked List
          • Linked List Tutorial
        • Stack
        • Queue
        • Tree
          • Generic Tree
          • Binary Tree
          • Binary Search Tree
          • AVL Tree
          • B Tree
          • B+ Tree
          • Red Black Tree
          • Tree Data Structure Tutorial
        • Heap
        • Hashing
        • Graph
        • Set Data Structure
        • Map Data Structure
        • Advanced Data Structure
        • Data Structures Tutorial
      • Algorithms
        • Analysis of Algorithms
          • Design and Analysis of Algorithms
          • Asymptotic Analysis
          • Asymptotic Notations
          • Worst, Average and Best Cases
        • Searching Algorithms
          • Linear Search
          • Binary Search
          • Searching Algorithms Tutorial
        • Sorting Algorithms
          • Selection Sort
          • Bubble Sort
          • Insertion Sort
          • Merge Sort
          • Quick Sort
          • Heap Sort
          • Counting Sort
          • Radix Sort
          • Bucket Sort
          • Sorting Algorithms Tutorial
        • Greedy Algorithms
        • Dynamic Programming
        • Graph Algorithms
        • Pattern Searching
        • Recursion
        • Backtracking
        • Divide and Conquer
        • Mathematical Algorithms
        • Geometric Algorithms
        • Bitwise Algorithms
        • Randomized Algorithms
        • Branch and Bound
        • Algorithms Tutorial
      • Complete DSA Tutorial
      • Competitive Programming
      • Company Wise SDE Sheets
        • Facebook SDE Sheet
        • Amazon SDE Sheet
        • Apple SDE Sheet
        • Netflix SDE Sheet
        • Google SDE Sheet
        • Wipro Coding Sheet
        • Infosys Coding Sheet
        • TCS Coding Sheet
        • Cognizant Coding Sheet
        • HCL Coding Sheet
      • DSA Cheat Sheets
        • DSA Sheet for Beginners
        • SDE Sheets
        • FAANG Coding Sheet
        • Love Babbaar Sheet
        • Mass Recruiter Sheet
        • Product-Based Coding Sheet
        • Company-Wise Preparation Sheet
      • Top Interview Questions
        • Top 100 DSA Interview Questions Topic-wise
        • Top 50 Array Problems
        • Top 50 String Problems
        • Top 50 Stack Problems
        • Top 50 Heap Problems
        • Top 50 Linked List Problems
        • Top 50 Tree Problems
        • Top 50 Graph Problems
        • Top 50 Problems on Recursion Algorithms
        • Top 20 Interview Questions on Greedy Algorithms
        • Top 20 Interview Questions on Dynamic Programming
        • Top 50 Problems on Dynamic Programming (DP)
        • Top 20 Interview Questions on Hashing
        • Interview Questions on Top 10 Algorithms
        • Commonly Asked Data Structure Interview Questions
      • DSA Blogs
      • Puzzles
        • All Puzzles
        • Top 100 Puzzles Asked In Interviews
        • Top 20 Puzzles Commonly Asked During SDE Interviews
        • Top MCQs on Puzzles with Answers
        • Crossword Puzzle Of The Week
    • ML & Data Science
      • Learn Python
      • Machine Learning
        • Machine Learning Tutorial
        • Maths for ML
        • ML Projects
      • Data Science using Python
      • Data Science using R
      • Data Science Packages
        • Pandas Tutorial
        • NumPy Tutorial
      • Data Visualization
        • Data Visualization with Python
          • Python Data Visualization Tutorial
          • Matplotlib Tutorial
          • Bokeh Tutorial
          • Plotly Tutorial
          • Seaborn Tutorial
        • Data Visualization with R
          • Data Visualization with R
          • Plotly Tutorial
          • ggplot Tutorial
        • Data Visualization Tools
          • Tableau
          • Power BI
      • Data Analysis
        • Data Analysis with Python
        • Data Analysis with R
      • Deep Learning
        • Deep Learning Tutorial
        • Deep Learning Projects
      • NLP Tutorial
      • OpenCV Tutorial
      • Interview Questions
        • Machine Learning Interview Question
        • Deep Learning Interview Question
        • Python Interview Questions
        • Top 50 R Interview Questions
      • ML Frameworks
        • Tensorflow
        • PyTorch
        • PyTorch Lightning
    • System Design
      • System Design Tutorial
        • What is System Design
        • Key Terminologies in System Design
        • Analysis and Architecture of Systems
        • Scalability in System Design
        • Databases in System Design
        • High Level Design or HLD
        • Low Level Design or LLD
        • Communication Protocols
        • Web Servers and Proxies
        • Case Studies in Designing Systems
        • Complete System Design Tutorial
      • Software Design Patterns
        • Factory Pattern
        • Observer Pattern
        • Singleton Design Pattern
        • Decorator Pattern
        • Strategy Pattern
        • Adapter Pattern
        • Command Pattern
        • Iterator Pattern
        • Prototype Design Pattern
        • All Design Patterns
      • System Design Roadmap
      • Top 10 System Design Interview Questions and Answers
    • Interview Corner
      • Company Preparation
      • Top Topics
      • Practice Company Questions
      • Interview Experiences
      • Experienced Interviews
      • Internship Interviews
      • Competitive Programming
      • Multiple Choice Quizzes
      • Aptitude for Placements
    • Languages
      • C
      • C++
      • Java
      • Python
      • JavaScript
      • PHP
      • R Tutorial
      • C#
      • SQL
      • Scala
      • Perl
      • Go Language
      • Kotlin
    • Web Development
      • HTML
        • HTML Tutorial
        • Free HTML Course
        • HTML Cheat Sheet
      • CSS
        • CSS Tutorial
        • Free CSS Course
        • CSS Cheat Sheet
        • CSS Preprocessors
          • SASS
          • LESS
      • JavaScript
        • JavaScript Tutorial
        • JavaScript Programs
        • JavaScript Questions
        • JavaScript Cheat Sheet
        • DSA using JavaScript
        • Free JavaScript Course
        • JavaScript A to Z Complete Guide
      • ReactJS
        • ReactJS Tutorial
        • Free ReactJS Course
        • ReactJS Frameworks
          • NextJS
          • React Material UI
          • React Bootstrap
          • React Suite
          • Ant Design
          • ReactJS Reactstrap
          • BlueprintJS
      • Node.js
        • Node.js Tutorial
        • Express.js
      • PHP
        • PHP Tutorial
        • PHP Programming Examples
      • AngularJS