In this problem, we need to find the sum of elements along each diagonal path in a binary tree. A diagonal path moves from top-left to bottom-right, where moving to the right child continues the same diagonal, while moving to the left child starts a new diagonal level. Looking at the example tree structure: 12 8 15 3 10 ... Read More
Matrix diagonal sorting is a problem where we need to sort each diagonal of a matrix from top-left to bottom-right in ascending order. Each diagonal runs parallel to the main diagonal and gets sorted independently. Understanding the Problem Given a matrix, we identify all diagonals that run from top-left to bottom-right. For example, in a 3x4 matrix, we have multiple diagonals starting from different positions. ... Read More
Suppose two friends Amal and Bimal are playing a game with a sorted list of numbers called nums. In this game in a single turn, Amal chooses any three numbers. Bimal removes one of them, and then Amal removes one of them. The list starts out with an odd number of elements. Here Amal wishes to minimize the number of turns required to make the list contain no repeated elements, Bimal wishes to maximize the number of turns. If Amal and Bimal act optimally, we have to find how many turns are needed for this game. So, if the ... Read More
In this problem, we have two strings S and T that are permutations of each other. We can perform an operation where we remove either the first or last character from S and insert it anywhere in the string. The goal is to find the minimum number of operations needed to convert S into T. Problem Understanding Given strings s = "zyvxw" and t = "vwxyz", we need to transform s into t using the allowed operations. The key insight is to find the longest common subsequence that appears in the same order in both strings, then calculate ... Read More
Suppose we have a binary tree, we will repeatedly delete all leaves that have even values. After deleting all even-valued leaves, if only the root remains and it has an even value, that will be deleted as well. So, if the input is like ? 13 12 14 16 22 ... Read More
Suppose we have a mapping like a = 1, b = 2, ... z = 26, and we have an encoded message string. We need to count the number of ways it can be decoded using dynamic programming. For example, if the input is message = "222", then the output will be 3, as this can be decoded in 3 ways: "bbb" (2-2-2), "bv" (2-22), and "vb" (22-2). Algorithm To solve this problem, we will follow these steps − Create a memo array of size message length + 1 initialized with zeros Set memo[0] = ... Read More
Suppose we have two strings S and T of same length, we have to check whether it is possible to cut both strings at a common point so that the first part of S and the second part of T form a palindrome. So, if the input is like S = "cat" T = "dac", then the output will be True, as if we cut the strings into "c" + "at" and "d" + "ac", then "c" + "ac" is a palindrome. Algorithm To solve this, we will follow these steps − ... Read More
Suppose we have a 2D matrix where matrix[i] represents the list of prerequisite courses needed to enroll in course i. We need to check whether it is possible to take all courses without encountering circular dependencies. So, if the input is like matrix = [[1], [2], []], then the output will be True, as we can take course 2, then course 1, and then course 0. Algorithm Overview This problem is essentially detecting cycles in a directed graph. We use Depth-First Search (DFS) with two tracking arrays: vis − tracks nodes currently in the DFS ... Read More
Suppose we have a list of numbers called nums, we have to find the number of sublists where the first element and the last element are same. So, if the input is like nums = [10, 15, 13, 10], then the output will be 5, as the sublists with same first and last element are: [10], [15], [13], [10], [10, 15, 13, 10]. Algorithm To solve this, we will follow these steps − num_sublists := size of nums d := an empty map for each n ... Read More
Suppose we have a list of numbers called nums of length n + 1. These numbers are picked from range 1, 2, ..., n. As we know, using the pigeonhole principle, there must be a duplicate. We have to find that and return it. So, if the input is like [2, 1, 4, 3, 3], then the output will be 3. Approach To solve this, we will follow these steps − l := size of nums temp := l*(l-1) /2 temp_sum := sum ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Economics & Finance