The Two Pointer Technique: A Complete Guide

The two-pointer technique is one of the most common and powerful patterns used in competitive programming, data structures, and algorithms. It helps solve problems that involve searching, sorting, or traversing arrays, strings, or linked lists in an efficient way. Core The two-pointer technique is a way to solve array, string, and linked list problems using … Read full article: The Two Pointer Technique: A Complete Guide

Longest Common Subsequence (LCS) — Complete Guide

This will be a complete deep understanding guide so you can use LCS intuition for many DP problems. Subsequence vs Substring Problem Definition Given two strings. Find the length of the longest subsequence common to both strings. Brute Force Thinking (Important for intuition) At each character we have two choices Key Insight Compare characters: text1[i] … Read full article: Longest Common Subsequence (LCS) — Complete Guide

Knapsack — The Master DP Pattern

Knapsack derives its name from the problem faced by someone who is constrained by a fixed-size knapsack and must fill it with the most valuable items. The problem often arises in resource allocation, where decision-makers must choose from a set of indivisible projects or tasks under a fixed budget or time constraint, respectively. What is … Read full article: Knapsack — The Master DP Pattern

Dynamic Programming (DP): A Complete Guide

Dynamic Programming (DP) is an optimisation technique that solves complex problems by breaking them down into smaller, overlapping subproblems and storing their results to avoid redundant calculations. About DP Why do we even need dynamic programming? Before DP, let’s understand the problem DP is solving. While solving a problem, we often end up solving the … Read full article: Dynamic Programming (DP): A Complete Guide

Prefix Sum (Pre Sum) in Competitive Programming

Let’s go deep into Prefix Sum (Pre Sum) from a competitive programming perspective.This is one of the fundamental techniques you’ll repeatedly use in array, string, DP, and number theory problems. What is Prefix Sum? For an array arr[0..n-1], the prefix sum array pre[i] is defined as: That is, the cumulative sum up to index i. … Read full article: Prefix Sum (Pre Sum) in Competitive Programming

Mastering Greedy Algorithms

Greedy algorithms are one of the most elegant problem-solving strategies in computer science. They are fast, intuitive, and often surprisingly effective—but only when applied to the right problems. This guide walks you through the recipe for designing greedy algorithms, the common proof techniques, and the classic patterns you must know. What Is a Greedy Algorithm? … Read full article: Mastering Greedy Algorithms

Tree Data Structure Practice Question

Check Same binary Tree Leet 100. Same Tree When we first read the “Same Tree” problem, we often think of comparing the traversal results — like inorder, preorder, or postorder — of both trees. That’s a natural and valid idea, but it’s not necessary or ideal in this case. Case 1 : Using one of … Read full article: Tree Data Structure Practice Question

Math Tricks in Competitive Programming

Competitive programming is not just about knowing programming syntax—it’s a blend of logic, speed, and mathematics. Mastering a few essential math tricks can drastically boost your problem-solving skills and efficiency. Let’s explore the most powerful and commonly used math techniques in competitive programming. Prime Numbers A prime number is a number greater than 1 that … Read full article: Math Tricks in Competitive Programming

GCD and LCM: Essential Tools for Competitive Programming

GCD and LCM are foundational concepts in number theory and are widely used in areas such as simplifying fractions, cryptography, and solving Diophantine equations. GCD (Greatest Common Divisor) GCD of 12 and 18 So, the GCD is 6 Euclidean Algorithm for GCD This is an efficient method to find GCD: Code Euclidean Algorithm, Why it … Read full article: GCD and LCM: Essential Tools for Competitive Programming