A* Algorithm
This page explains the A* Algorithm for finding the shortest path in a graph using heuristics.
This page explains the A* Algorithm for finding the shortest path in a graph using heuristics.
This is a solution to the Aho-Corasick algorithm problem on Geeks for Geeks.
Arrays are the most basic data structure in computer science. They are used to store a collection of elements of the same type. In this article, we will learn about arrays, their properties, and the problems related to arrays in Data Structures and Algorithms. We will also discuss the problems for practice.
In this tutorial, we will learn about arrays and strings in programming. We will discuss what arrays and strings are, how they are used, and how they are different from each other.
Programming is the process of writing instructions for a computer to perform a specific task. It involves writing code in a programming language that the computer can understand and execute. Programming is an essential skill for any software developer or computer scientist. In this tutorial, we will cover the basics of programming, including the following topics:
This page explains the Bellman-Ford Algorithm for finding the shortest path in a graph with negative weight edges.
This page explains Borůvka's Algorithm, an algorithm for finding the minimum spanning tree (MST) of a graph.
This is a solution to the Boyer-Moore algorithm problem on Geeks for Geeks.
This page explains Breadth-First Search for traversing or searching tree or graph data structures.
This is a solution to the Burrows-Wheeler Transform (BWT) algorithm problem on Geeks for Geeks.
Hello, C++ enthusiasts! Today, we’re diving into one of the most essential and versatile components of the C++ Standard Template Library (STL): the iterator. If you’re looking to enhance your understanding and utilization of iterators in C++, you’re in the right place. This guide will cover everything you need to know about iterators, from basic usage to advanced features, complete with examples and practical applications.
Hello, C++ aficionados! Today, we're diving into one of the most fundamental and flexible components of the C++ Standard Template Library (STL): the list. If you're looking to enhance your understanding and utilization of lists in C++, you're in the right place. This guide will cover everything you need to know about lists, from basic usage to advanced features, complete with examples and practical applications.
Hello, C++ enthusiasts! Today, we're diving into one of the most powerful and unique components of the C++ Standard Template Library (STL): the set. If you're looking to enhance your understanding and utilization of sets in C++, you're in the right place. This guide will cover everything you need to know about sets, from basic usage to advanced features, complete with examples and practical applications.
Welcome back, C++ enthusiasts! Today, we're going to take a deep dive into one of the most versatile and widely used components of the C++ Standard Template Library (STL): the vector. If you’re looking to enhance your understanding and utilization of vectors in C++, you’re in the right place. This guide will cover everything you need to know about vectors, from basic usage to advanced features, complete with examples and practical applications.
A comprehensive guide to Data Structures and Algorithms (DSA) including resources, books, courses, websites, blogs, YouTube channels, podcasts, interview preparation, competitive programming, practice problems, mock interviews, interview experiences, interview questions, interview tips, interview cheat sheets, and interview preparation misc.
This page explains Depth-First Search for traversing or searching tree or graph data structures.
In this tutorial, we will delve into deque (double-ended queue) in Data Structures and Algorithms. We'll explore what deque is, how it's used, and its implementation in various programming languages.
This page explains Dijkstra's Algorithm for finding the shortest path in a graph, with code implementations and resources for further learning.
This page explains the Edmonds-Karp Algorithm, an implementation of the Ford-Fulkerson method for computing the maximum flow in a flow network.
This page explains the Floyd-Warshall Algorithm for finding the shortest paths between all pairs of vertices in a weighted graph.
This page explains the Ford Fulkerson's Algorithm for finding the maximum flow,residual flowin a network flow graph.
Greetings, C++ enthusiasts! Today, we’re going to dive into the world of functors, also known as function objects. If you’re eager to enhance your C++ skills and learn how to create flexible, reusable functions, you’ve come to the right place. This comprehensive guide will cover everything you need to know about functors, from basic usage to advanced features, complete with practical examples.
What is Graph Data Structure
In this tutorial, we will learn about graphs in Data Structures and Algorithms. We will discuss what graphs are, how they are used, and why they are important.
In this tutorial we will explore one of the fundamental data structure in computer science: Binary Tree
Data Structures and Algorithms (DSA) are the building blocks of computer programming. They are essential tools for any programmer to have in their toolkit. They help in writing efficient code and solving complex problems.
Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for the same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of subproblems so that we do not have to re-compute them when needed later. This simple optimization reduces time complexities from exponential to polynomial.
Introduction
This page explains Johnson's Algorithm, an algorithm for finding shortest paths between all pairs of vertices in a weighted, directed graph.
This page explains Kahn's Algorithm, an algorithm for topological sorting of a directed acyclic graph (DAG).
This is a solution to the Knuth-Morris-Pratt (KMP) algorithm problem on Geeks for Geeks.
This page explains Kosaraju's Algorithm for finding the no of strongly connected component in a graph.
This page explains Kruskal's Algorithm for finding the minimum spanning tree in a graph.
Kruskal's algorithm is a popular method used to find the minimum spanning tree (MST) of a connected, undirected graph. A minimum spanning tree is a subset of the edges in a graph that connects all the vertices together, wihout any cycles, and with minimum possible total edge weight.
Here is a list of some popular LeetCode dynamic programming problems:
Questions
Introduction:
In this tutorial, we will learn about linked lists in Data Structures and Algorithms. We will discuss what linked lists are, how they are used, and how they are different from arrays.
This is a solution to the Manacher's Algorithm problem on Geeks for Geeks.
In this tutorial, we will delve into the concept of a monotonic stack in Data Structures and Algorithms. We'll explore what a monotonic stack is, how it works, and its applications.
This is a solution to the Naive Pattern Matching algorithm problem on Geeks for Geeks.
This page explains Prim's Algorithm for finding the minimum spanning tree in a graph.
In this tutorial, we'll explore priority queues in Data Structures and Algorithms. We'll discuss what priority queues are, how they're used, and how to implement them in various programming languages.
This is a solution to the Rabin-Karp algorithm problem on Geeks for Geeks.
This page explains the concept of Recursion with detailed explanations, examples, and code implementations.
This is a solution to the Rolling Hash algorithm problem on Geeks for Geeks.
Sliding Window problems are problems in which a fixed or variable-size window is moved through a data structure, typically an array or string, to solve problems efficiently based on continuous subsets of elements. This technique is used when we need to find subarrays or substrings according to a given set of conditions.
In this tutorial, we will learn about stacks and queues in Data Structures and Algorithms. We will discuss what stacks and queues are, how they are used, and how they are different from each other.
Greetings, aspiring C++ wizards and seasoned coders alike! Today, we embark on an exciting journey through the magical realm of the C++ Standard Template Library, or STL. This powerful toolkit is the secret weapon in every C++ programmer's arsenal, offering a treasure trove of pre-written code that can make solving data structure and algorithm problems a breeze. So, grab your wand (or keyboard), and let’s dive into the world of STL, where efficiency meets elegance in C++ programming.
Hello, C++ enthusiasts! Today, we’re diving into one of the most fundamental and versatile components of the C++ Standard Library: the find algorithm. If you're looking to enhance your understanding and utilization of searching in C++, you're in the right place. This guide will cover everything you need to know about the find algorithm, from basic usage to advanced features, complete with examples and practical applications.
Hello, C++ enthusiasts! Today, we’re diving into one of the most fundamental and powerful components of the C++ Standard Library: the sort algorithm. If you're looking to enhance your understanding and utilization of sorting in C++, you're in the right place. This guide will cover everything you need to know about the sort algorithm, from basic usage to advanced features, complete with examples and practical applications.
What is Time Complexity?
This page explains Topological Sorting, an algorithm for ordering vertices in a directed acyclic graph (DAG).
This is a solution for the string matching in linear time using Z algorithm.