Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //PRINT MAX PRODUCT OF TWO ELEMENTS IN ARRAY
- function maxProduct(arr) { //набрать 2 минимальных, 2 максимальных и смотреть на случаи: есть положительные числа или нет. В зависимости от них выводить произведение двух наименьших, меньшее*большее или на 2 наибольших
- if(arr.length === 2)
- return arr[0]*arr[1];
- let a1 = Number.MaxValue;
- let b1 = Number.MaxValue;
- let mx = Number.MinValue;
- for(let i = 0; i < arr.length; i++) {
- if(arr[i] <= a) {
- b = a;
- a = arr[i];
- } else if(arr[i] <= b)
- b = a;
- mx = Math.max(mx, arr[i]);
- }
- return Math.min(a*b, a*mx);
- }
- let tests = [
- [
- [1, 2],
- 2
- ],
- [
- [-2, 1, 0, -1],
- -2
- ],
- [
- [1, 2],
- 2
- ],
- [
- [0, 1, 1, 5, -1, 2],
- 10
- ],
- [
- [0, 1, 1, 5, -1, 2],
- 10
- ]
- ]
- console.log("Starting tests...")
- for(let [ind, test] of tests.entries())
- if(maxProduct(test[0]) !== test[1])
- console.log(`WRONG TEST #${ind}: Expected ${test[1]}; got ${maxProduct(test[0])}`);
- console.log("Tests are done")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement