Problem Reference - Hackerrank Problem There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature, i.e., if A is friend of B and B is friend of C, then A is also friend of C. A friend circle is a group of students who are directly or indirectly friends.
You are given a N×N−matrix M which consists of characters Y or N.
[Read More]
Lego Blocks Problem
Convert Binary Tree to Doubly linked list in level order
Question: write an algorithm to convert a binary tree into a double linked list. For example, if the input is the binary tree below:
The output will be a double linked list like this:
Solution: there are two tasks in converting a binary tree to a linked list. First of all, we must traverse the tree and visit all the nodes. Second of all, we must break each node from the tree and add it into the linked list.
[Read More]
Number of steps required to convert string 1 to string2 when only bring character to first index operation is giving
Problem
Given 2 strings - s1 and s2, when only 1 operation is allowed - Moving character at a time but only to the first position.
Example
Example 1
Input
s1 = abcd
s2 = bacd
Output
Ans = 1
Reason, just move b forward and we get it.
Example 2
Input
A = (a)b(cd)e(f)g(hij)
B = ahdjcifbeg
Output
Ans =7
Explanation
A = (a)b(cd)e(f)g(hij)
B = ahdjcifbeg
Characters b,e,g are in the order, rest characters have to brought first.
[Read More]
Find the largest subarray with sum of 0 in the given array
Problem
An array contains both positive and negative elements, find the largest subarray whose sum equals 0.
Example
int[] input = {4, 6, 3, -9, -5, 1, 3, 0, 2}
int output = {4, 6, 3, -9, -5, 1} of length 6
Solution Method 1 - Brute force
This is simple. Will write later (incomplete)
Method 2 - Storing the sum upto ith element in temp array
Given an int[] input array, you can create an int[] tmp array where
[Read More]
Skiplists
Goal
To understand skiplist.
Definition
Skiplist is a dynamic search structure, as it is dynamic when it comes to insertion and deletion, which supports search).
Other dynamic search structure:
Treaps Red black tree B-Trees (2-3 trees etc) Operations on skiplist
Search - O(log n) Insert - O(log n) Delete - O(log n) These operations are with high probability, 1/polynomial depending on polynomial number of operation.
[Read More]
Max submatrix sum in a matrix
Problem
Given an NxN matrix of positive and negative integers, write code to find the sub- matrix with the largest possible sum.
Solution
This is DP problem. Here is the good solution.
References
Find max subsquare whose border values are all 1
Problem Imagine you have a square matrix, where each cell is filled with either black or white. Design an algorithm to find the maximum subsquare such that all four borders are filled with black pixels.
Solution We are going to scan column by column, checking to see if this column can be the left-border of the desired subsquare. Along each column, we build “sliding windows”, from large size to small size.
[Read More]
Suffix Array
Game of Master Mind
Problem The Game of Master Mind is played as follows:
The computer has four slots containing balls that are red (R), yellow (Y), green (G) or blue (B). For example, the computer might have RGGB (e.g., Slot #1 is red, Slots #2 and #3 are green, Slot #4 is blue).
You, the user, are trying to guess the solution You might, for example, guess YRGB.
When you guess the correct color for the correct slot, you get a “hit” If you guess a color that exists but is in the wrong slot, you get a “pseudo-hit”.
[Read More]