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

Hackerearth Arrays Problem: Most Frequent

Hackerearth Problem and solution in Javascript

Problem statement: 

Mr. Bourneville loves programming and he likes to face new programming challenges. After completing many challenges he has now given you one challenge which is one of his favorites. He has given you a list of N random integers and he wants you to find the integer which has the maximum frequency in the given list.

Mr. Bourneville already has a solution for this but he is not satisfied with his solution. He wants you to write a shortest possible code for this task. In case Frequency of two numbers is same print the smaller one

Input:
First line of input contains N, number of integers.
Second line will contains N spaces separated integers.

Output:
Print the most frequent integer.

Contraints:
3<=N<=104
-106<=Integer<=106

Sample Input:

5
1 1 1 2 2

Sample Output:

1
Explanation

Clearly, count of 1 more than count of 2.

Problem link: click here.

Solution Approach:

1). we will sort the array in ascending order.

2). then we will traverse through the array keeping the record of the number which has occurred maximum number of times till now.

3) we will update max Frequency variable only if the current element's frequency is more than max frequency.


Code Solution: 


// this part is for reading the input.


process.stdin.resume();

process.stdin.setEncoding("utf-8");

var stdin_input = "";


process.stdin.on("data", function (input) {

    stdin_input += input;

});


process.stdin.on("end", function () {

   main(stdin_input);

});


function main(input) {

    var singleLine = input.split('\n');

    var n = singleLine[0].split(',')[0];

    var arr = singleLine[1].split(' '); 


    arr=arr.sort((a,b)=>a-b) // array sorted in ascending order

    let maxNumber=0,

         maxFreq=0,

         currentNumber=arr[0],

         currentFreq=0;

 

    // traversing through each element of array

    arr.forEach((e)=>{

        if(e===currentNumber){

            currentFreq++;

            }

        else{

            currentNumber=e

            currentFreq=1

        }


        if(currentFreq>maxFreq){

            maxFreq=currentFreq

            maxNumber=e

        }

    })

    console.log(maxNumber) //printing the number occurred maximum times.

    

}


 


Comments

Popular posts from this blog

Ice Cream Parlor : Hackerrank Problem and Solution

Disemvowel Trolls || Codewars problem and solution in Javascript || Topic : Strings and RegEx

Descending Order || CodeWars Problem and solution in javascript.