A* Algorithm
In this tutorial, we will learn about A* Algorithm and its implementation in Python, and C++ with detailed explanations and examples.
In this tutorial, we will learn about A* Algorithm and its implementation in Python, and C++ with detailed explanations and examples.
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.
Approximation Algorithm
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.
In this tutorial, we will learn about the Bellman-Ford Algorithm and its solution using Dynamic Programming in Python, Java, and C++ with detailed explanations and examples.
This page explains the Bellman-Ford Algorithm for finding the shortest path in a graph with negative weight edges.
In this , we will learn about Bin Packing Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
This page explains Borůvka's Algorithm, an algorithm for finding the minimum spanning tree (MST) of a graph.
In this tutorial, we will learn about Moore's Voting Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
This is a solution to the Boyer-Moore algorithm problem on Geeks for Geeks.
Branch and Bound
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.
In this tutorial, we will learn about the Coin Change Problem and its solution using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
Tractable and Intractable
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.
In this tutorial, we will learn about Dijkstra's Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
This page explains Dijkstra's Algorithm for finding the shortest path in a graph, with code implementations and resources for further learning.
In this tutorial, we will learn about the Dutch National Flag Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
In this tutorial, we will learn about the Edit Distance problem and its solution using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
This page explains the Edmonds-Karp Algorithm, an implementation of the Ford-Fulkerson method for computing the maximum flow in a flow network.
In this tutorial, we will learn about the Fibonacci sequence and its implementation using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
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.
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 learn about Hash Tables, their uses, how they work, and hashing in general with detailed explanations and examples.
Backtracking
In this tutorial we will explore one of the fundamental data structure in computer science: Binary Tree
Bit Manipulation is a technique used in a variety of problems to get the solution in an optimized way. This technique is very effective from a Competitive Programming point of view. It is all about Bitwise Operators which directly works upon binary numbers or bits of numbers that help the implementation fast. Below are the Bitwise Operators that are used:
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.
Greedy Algorithm is defined as a method for solving optimization problems by taking decisions that result in the most evident and immediate benefit irrespective of the final outcome. It works for cases where minimization or maximization leads to the required solution.
Introduction
This page explains Johnson's Algorithm, an algorithm for finding shortest paths between all pairs of vertices in a weighted, directed graph.
In this tutorial, we will learn about Kadane’s Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
In this tutorial, we will learn about Kadane's Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
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.
1. 46. Permutations
1. Number of 1 Bits - Write a function that takes an unsigned integer and returns the number of '1' bits it has (also known as the Hamming weight).
Here is a list of some popular LeetCode dynamic programming problems:
1. Jump Game
Questions
In this tutorial, we will explore linear search and binary search algorithms and their implementations in Python, Java, C++, and JavaScript with detailed explanations and examples.
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.
In this tutorial, we will learn about the Longest Common Subsequence (LCS) problem and its implementation using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
In this tutorial, we will learn about the Longest Increasing Subsequence (LIS) problem and its implementation using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
This is a solution to the Manacher's Algorithm problem on Geeks for Geeks.
In this tutorial, we will learn about the Matrix Chain Multiplication problem and its solution using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
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.
In this tutorial, we will learn about Moore's Voting Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
In this tutorial, we will learn about the Multistage Graph Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
This is a solution to the Naive Pattern Matching algorithm problem on Geeks for Geeks.
In this tutorial, we will learn about the Palindrome Partitioning problem and its solution using Dynamic Programming in Python, Java, and C++ with detailed explanations and examples.
In this tutorial, we will learn about the Partition Problem and its solution using Dynamic Programming in Python, Java, C++, and JavaScript with detailed explanations and examples.
This page explains Prim's Algorithm for finding the minimum spanning tree in a graph.
In this tutorial, we will learn about Prim's Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
In this tutorial, we will learn about Prim's Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
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.
Randomised Algorithm
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.
1. Sliding Window Maximum
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.
In this tutorial, we will learn about Tarjan's Algorithm and its implementation in Python, Java, C++, and JavaScript with detailed explanations and examples.
This page explains Topological Sorting, an algorithm for ordering vertices in a directed acyclic graph (DAG).
In this tutorial, we will learn about the Travelling Sales Person Algorithm and its solution using Dynamic Programming in Python, Java, and C++ with detailed explanations and examples.
In this tutorial, we will learn about Wildcards Matching and its solution using Dynamic Programming in Python, Java, and C++ with detailed explanations and examples.
In this tutorial, we will learn about the Word Break Problem and its implementation in Python, Java, and C++ with detailed explanations and examples.
This is a solution for the string matching in linear time using Z algorithm.
In this tutorial, we will learn about the Z-Algorithm and its implementation in Python, Java, and C++ with detailed explanations and examples.