C++ Articles

Page 151 of 597

Insert Delete GetRandom O(1) - Duplicates allowed in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 223 Views

Suppose, we want to make a data structure, that supports some operations, these operations must be preformed in O(1) amount of time. So let these operations are like −insert(x): insert x into the collectionremove(x): delete x from the collectiongetRandom(): This will find random element form that collection.To solve this, we will follow these steps −Make an array numsmake one map mDefine a function insert(), this will take val, ret := when val is not in minsert size of nums at the end of m[val]insert { val, size of m[val] – 1} pair at the end of numsreturn retDefine a function ...

Read More

Arithmetic Slices II - Subsequence in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 301 Views

Suppose we have an array A, where N numbers are present. A subsequence slice of that array is any sequence of integers like (K0, K1, K2, … Kn) such that 0 = 2. So we have to return the number of arithmetic slices.So if the input is like [2, 4, 6, 8, 10], then the answer will be 7, as there are 7 arithmetic slices. [2, 4, 6], [2, 4, 10], [4, 6, 8], [6, 8, 10], [2, 4, 6, 8], [4, 6, 8, 10], [2, 4, 6, 8, 10], To solve this, we will follow these steps −ret := ...

Read More

Frog Jump in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 2K+ Views

Suppose there is a frog that is crossing a river. The river is divided into x units and at each unit there may be a stone. The frog can jump on a stone, but not water. Here we have a list of stones' positions in sorted ascending order sequence, we have to check whether the frog is able to cross the river by landing on the last stone, or not. Initially, the frog is on the first stone and assume the first jump must be of 1 unit.When the frog's current jump was k units, then its next jump must ...

Read More

Poor Pigs in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 290 Views

Suppose there are 1000 buckets, one of them is poisonous, others are filled with water. They all look similar. If a pig drinks the poison it will die within 15 minutes. What will be the minimum amount of pigs that we need to find out the poisonous bucket within one hour?So now consider for the general case and devise an algorithm for this. So, the general case is that If there are n different buckets and a pig drinking poison will die within m minutes, how many pigs are needed to find poisonous bucket within p minutes? There is exactly ...

Read More

Concatenated Words in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 265 Views

Suppose we have a list of words. These words are distinct. We have to devise an algorithm that will find all concatenated words in the give list of words. A concatenated word is actually a string that is comprised entirely of at least two shorter words in the given array.So if the words are like ["cow", "cows", "cowsgoatcows", "goat", "goatcowsgoat", "hippopotamuses", "deer", "deercowgoatcow"], then the output will be ["cowsgoatcows", "goatcowsgoat", "deercowgoatcow"]To solve this, we will follow these steps −Define a function isPresent(), this will take str, head, idx, an array dp, if idx >= size of str, then −return trueif ...

Read More

Largest Palindrome Product in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 219 Views

Suppose we have input n, we have to find the largest palindrome that can be made using multiplication of two n digit numbers. As the numbers are very large, we can perform mod using 1337. So if the input is say 2, then the answer will be 987, 987 = (99*91) mod 1337 = 9009 mod 1337 = 987.To solve this, we will follow these steps −maxVal := 10^n – 1minVal := maxVal / 10for initialize h := maxVal, when h > minVal, update (decrease h by 1), do −left := h, right := 0for initialize i := h, when ...

Read More

Super Washing Machines in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 673 Views

Suppose we have n super washing machines on a row. Initially, each washing machine has some dresses or empty. Now, for each move, we can choose any m (1 ≤ m ≤ n) washing machines, and pass one dress of each washing machine to one of its adjacent washing machines at the same time. Suppose we have one integer array representing the number of dresses in each washing machine from left to right on the row, we should find the minimum number of moves to make all the washing machines have the same number of clothes. If it is not ...

Read More

Sliding Window Median in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 2K+ Views

Suppose we have a list of numbers, and we have one window size k, we have to find the list of medians using sliding window manner. So, if the distribution is like below −Window PositionMedian13-1-35368113-1-35368-113-1-35368-113-1-35368313-1-35368513-1-353686Here we have considered the k is 3, and the result will be [1, -1, -1, 3, 5, 6]To solve this, we will follow these steps −Define one set arrDefine a function insert(), this will take x, insert x into arrDefine a function delete_(), this will take x, delete x from arr, if this existsDefine a function getMedian()n := size of arra := jump to n/2 ...

Read More

Zuma Game in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 948 Views

Let us consider about the Zuma Game. Suppose we have a row of balls on the table, these balls are colored as red(R), yellow(Y), blue(B), green(G), and white(W). We also have several balls with us.Now, each time, we may choose a ball from our side, and insert it into the row. Then, if there is a group of 3 or more balls in the same color touching, remove them. Keep doing this until no more balls can be removed.We have to find the minimal balls we have to insert to remove all the balls on the table. If we cannot ...

Read More

Reverse Pairs in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 1K+ Views

Suppose we have an array, in this array we will say one pair (A[i] and A[j]) as important reverse pairs if this satisfies the following condition −if i < j and A[i] > 2* nums[j]We have to find the number of important reverse pairs. So if the input is like [2,8,7,7,2], then the result will be 3.To solve this, we will follow these steps −ans := 0Define a function merge(), this will take an array a, low, mid, high,k := high - low + 1Define an array temp of size ki := low, j = mid + 1, k := 0first := mid + 1while i

Read More
Showing 1501–1510 of 5,962 articles
« Prev 1 149 150 151 152 153 597 Next »
Advertisements