An Achilles number is a number that is powerful but not a perfect power. A powerful number means that for every prime factor p, p² also divides the number. A perfect power is a number that can be expressed as a^b where a and b are positive integers and b > 1. Some examples of Achilles numbers are: 72, 108, 200, 288, 392, 432, 500, 648, 675, 800, 864, 968, 972, 1125. Understanding Achilles Numbers For example, 108 is an Achilles number because: 108 = 2² × 3³ (powerful: both 2² and 3² divide 108) ... Read More
A Trojan Number is a special type of number that meets two criteria: it must be a strong number but not a perfect power. A strong number is one where every prime factor appears at least twice (squared or higher). For example, 72 = 2³ × 3² is strong because both prime factors (2 and 3) appear at least twice, and it's not a perfect power like 8 = 2³. Understanding Strong Numbers A number is strong when every prime factor appears with an exponent of 2 or more ? from math import sqrt def ... Read More
Suppose we have an infinite chessboard with the same rules as chess. Given N knights and a king's position, we need to check whether the king is in checkmate or not. The coordinate system is bounded by large values like (-10^9
Suppose we have an array A with N elements, we have another value p and a segment size k, we have to check whether key p is present in every segment of size k in A. So, if the input is like A = [4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4], p = 4 and k = 3, then the output will be True because: Segment 1: [4, 6, 3] contains 4 ✓ Segment 2: [5, 10, 4] contains 4 ✓ Segment 3: [2, 8, 4] contains 4 ✓ Remaining elements: [12, ... Read More
A binary heap is a special binary tree with two key properties: it must be a complete tree (all levels filled except possibly the last, which fills left to right), and it must satisfy the heap property (each parent node is greater than or equal to its children for a max-heap). In this article, we'll implement a solution to check if a given binary tree satisfies both heap properties. Understanding Heap Properties A binary tree is a valid max-heap if: Complete Tree Property: All levels are completely filled except possibly the ... Read More
A Red-Black Tree is a balanced binary search tree where the height difference is controlled. In such trees, the longest path from any node to a leaf is at most twice the length of the shortest path. This property ensures the tree remains balanced and provides efficient operations. We need to check if a given binary tree satisfies this height-balanced property where for every node, the longest leaf-to-node path is not more than double the shortest path from node to leaf. Problem Understanding Given a binary tree like this: ... Read More
Checking for balanced parentheses is a classic programming problem. While the typical stack-based approach uses O(n) space, this article presents an O(1) space solution with O(n²) time complexity that modifies the string in-place by marking processed characters. Algorithm Overview The algorithm uses three global variables to track state and processes closing brackets by finding their matching opening brackets ? cnt ? counts unmatched opening brackets i ? current position in the string j ? position of the last unmatched opening bracket How It Works When a closing bracket is found, the solve() ... Read More
Suppose we have a number N, we have to determine the largest perfect cube that can be generated by removing minimum digits (possibly 0) from the number. We can delete any digit from the given number to reach the target. As we know a number N is called a perfect cube if N = M³ for some integer M. So, if the input is like 806, then the output will be 8, as we can delete 0 and 6 from the number, then we will get 8, which is perfect cube of 2. Algorithm To solve this, ... Read More
A complete binary tree is one where all levels are completely filled except possibly the last level, and the last level has all keys as far left as possible. In this problem, we need to find the largest complete subtree within a given binary tree and return its size. So, if the input is like ? 50 30 60 5 ... Read More
When working with arrays, we sometimes need to find a pair of elements that maximizes the binomial coefficient nCr value. Given an array of integers, we want to find arr[i] and arr[j] such that arr[i]C arr[j] is as large as possible. The key insight is that for a given n, nCr is maximized when r is closest to n/2. This mathematical property helps us efficiently find the optimal pair. Example If the input array is [4, 1, 2], we need to find the pair with maximum nCr value ? 4C1 = 4 4C2 = 6 ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Economics & Finance