# Problems

May 17, 2023

## Number of good leaf nodes pairs

We can traverse the tree and find out the distance between each pair of leaf nodes. If the distance is less than or equal to the given distance, we increment the result by 1. Time complexity:...

May 17, 2023

## Diameter of N-ary tree

We will use recursive DFS to find out the longest path in the tree. The longest path will be the diameter of the tree. Time complexity: `O(n)` where n is the number of nodes in the...

May 15, 2023

## Remove sub folders from the filesystem

We can use a trie data structure to store all the folders. We will iterate over the folders and insert them into the trie. If we find a folder that is already present in the trie, we will mark it as...

May 14, 2023

## Consecutive characters

We will keep track of the consecutive characters in a variable `count`. We will iterate over the string and if the current character is same as the previous character, we will increment...

May 13, 2023

## Maximum product of two elements in an array

We will use a heap to get the two largest elements in the array. Then we will return the product of the two largest elements each substructed by 1. Time complexity: `O(n)` Space...

May 13, 2023

## Count triplets that can form two arrays of equal xor

We will calculate the prefix xor for each index. Then we will iterate over all possible pairs of indices and check if the xor of the prefix xors of the two indices is 0. If it is, we will increment...

May 13, 2023

## Make array zero by subtracting equal amounts

We can solve this problem by using a heap. We will add all the elements to the heap. Then we will pop the largest element from the heap and substruct it from all the other elements. We will repeat...

November 1, 2022

## Letter tile possibilities

We will use DFS to generate all possible strings. We will generate all the strings, put it in a set for remove duplication and finally return the count as the result. Time complexity:...

May 12, 2023

## Android unlock patterns

We can use backtracking to solve the problem. We will start from the first number and try to find all possible patterns. We will use a hashmap to store the numbers that are already used. Now we will...