Posts

Showing posts from June, 2021

Dutch national flag problem in Javascript

Image
Dutch national flag problem and solution in Javascript Problem statement:   The Dutch national flag (DNF) problem is one of the most popular programming problems proposed by Edsger Dijkstra. The flag of the Netherlands consists of three colors: white, red, and blue. The task is to randomly arrange balls of white, red, and blue such that balls of the same color are placed together. Now, let's consider an array with 3 distinct values say 0, 1 and 2. We won't be using any sort method and we need to sort this array in 0(n). Input Array :  let   arr  = [ 0 ,  2 ,  1 ,  0 ,  1 ,  2 ,  0 ,  2 ]; Expected Output: [ 0, 0, 0, 1, 1, 2, 2, 2 ] Solution Approach : When we see expected output, we can clearly see that sorted array is divided into 3 sections having values 0 , 1 and 2. So, let's divide the array in 3 sections: a) from 0th index to left boundary b) from left boundary to right boundary c) from right boundary to last index. Now we will create 2 pointers : left (starting from 0

Dutch national flag problem in Javascript

Image
Dutch national flag problem and solution in Javascript Problem statement:   The Dutch national flag (DNF) problem is one of the most popular programming problems proposed by Edsger Dijkstra. The flag of the Netherlands consists of three colors: white, red, and blue. The task is to randomly arrange balls of white, red, and blue such that balls of the same color are placed together. Now, let's consider an array with 3 distinct values say 0, 1 and 2. We won't be using any sort method and we need to sort this array in 0(n). Input Array :  let   arr  = [ 0 ,  2 ,  1 ,  0 ,  1 ,  2 ,  0 ,  2 ]; Expected Output: [ 0, 0, 0, 1, 1, 2, 2, 2 ] Solution Approach : When we see expected output, we can clearly see that sorted array is divided into 3 sections having values 0 , 1 and 2. So, let's divide the array in 3 sections: a) from 0th index to left boundary b) from left boundary to right boundary c) from right boundary to last index. Now we will create 2 pointers : left (starting from 0

Diagonal Traversal of Matrix in Javascript

Image
Diagonal Traversal of Matrix/2D Array in Javascript Problem statement:   In this post, we will traverse a given matrix/2D array diagonally (from center to top right corner). Refer below attached diagram for better understanding. Diagonal pattern: Expected Output: expected   output :     1     6     11     16     2     7     12     3     8     4 Input Matrix:  let   input2DArray  = [   [ 1 ,  2 ,  3 ,  4 ],   [ 5 ,  6 ,  7 ,  8 ],   [ 9 ,  10 ,  11 ,  12 ],   [ 13 ,  14 ,  15 ,  16 ], ]; Solution Approach :  When we think about the pattern required, we can confirm that there will always be n number of diagonals that we will be traversing, that means the outer loop will be from 0 to n-1.  I have added below diagram for a matrix n x n: Inner loop will be having 2 variables i and j as row and col of matrix. we can see that row index=i in each iteration starts from zero and j will start from the index= diagonal. Let's write the code now: let   n  =  input2DArray . length ; for  ( let