JavaScript Finding the third maximum number in an array

JavascriptWeb DevelopmentFront End TechnologyObject Oriented Programming

We are required to write a JavaScript function that takes in an array of Numbers. The function should pick and return the third highest number from the array.

The time complexity of our function must not exceed O(n), we have to find the number in single iteration.

Example

const arr = [1, 5, 23, 3, 676, 4, 35, 4, 2];
 const findThirdMax = (arr) => {
   let [first, second, third] = [-Infinity, -Infinity, -Infinity];
   for (let el of arr) {
      if (el === first || el === second || el === third) {
         continue; };
         if (el > first) {
            [first, second, third] = [el, first, second]; continue; };
         if (el > second) {
            [second, third] = [el, second]; continue;
          };
         if (el > third) {
            third = el; continue;
      };
   };
   return third !== -Infinity ? third : first;
};
console.log(findThirdMax(arr));

Output

And the output in the console will be −

23
raja
Published on 21-Nov-2020 05:55:25
Advertisements