Advertisement
Pearlfromsu

js max product of 2 numbers in array

Apr 19th, 2024
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.30 KB | None | 0 0
  1. //PRINT MAX PRODUCT OF TWO ELEMENTS IN ARRAY
  2. function maxProduct(arr) { //набрать 2 минимальных, 2 максимальных и смотреть на случаи: есть положительные числа или нет. В зависимости от них выводить произведение двух наименьших, меньшее*большее или на 2 наибольших
  3.     if(arr.length === 2)
  4.         return arr[0]*arr[1];
  5.     let a1 = Number.MaxValue;
  6.     let b1 = Number.MaxValue;
  7.     let mx = Number.MinValue;
  8.     for(let i = 0; i < arr.length; i++) {
  9.         if(arr[i] <= a) {
  10.             b = a;
  11.             a = arr[i];
  12.         } else if(arr[i] <= b)
  13.             b = a;
  14.         mx = Math.max(mx, arr[i]);
  15.     }
  16.     return Math.min(a*b, a*mx);
  17. }
  18.  
  19.  
  20. let tests = [
  21.     [
  22.         [1, 2],
  23.         2
  24.     ],
  25.     [
  26.         [-2, 1, 0, -1],
  27.         -2
  28.     ],
  29.     [
  30.         [1, 2],
  31.         2
  32.     ],
  33.     [
  34.         [0, 1, 1, 5, -1, 2],
  35.         10
  36.     ],
  37.     [
  38.         [0, 1, 1, 5, -1, 2],
  39.         10
  40.     ]
  41. ]
  42.  
  43. console.log("Starting tests...")
  44. for(let [ind, test] of tests.entries())
  45.     if(maxProduct(test[0]) !== test[1])
  46.         console.log(`WRONG TEST #${ind}: Expected ${test[1]}; got ${maxProduct(test[0])}`);
  47. console.log("Tests are done")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement