Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tổng tích lớn nhất của hai mảng - JavaScript


Cho hai mảng số dương cùng độ dài. Tìm tổng tích lớn nhất khi mỗi phần tử mảng 1 nhân với đúng một phần tử mảng 2 (mỗi phần tử dùng đúng một lần).

Giải pháp: sắp xếp cả hai mảng giảm dần, nhân từng cặp tương ứng.

Ví dụ

Mã thực hiện:

const arr1 = [5,1,3,4,2]; 
const arr2 = [8,10,9,7,6]; 
const sorter = (a, b) => b - a; 
const greatestProduct = (a1, a2) => { 
  if(a1.length !== a2.length){ 
    return false; 
  }; 
  const a1Sorted = a1.slice().sort(sorter); 
  const a2Sorted = a2.slice().sort(sorter); 
  let res = 0; 
  for(let i = 0; i < a1.length; i++){ 
    res += (a1Sorted[i] * a2Sorted[i]); 
  }; 
  return res; 
}; 
console.log(greatestProduct(arr1, arr2));

Kết quả

Kết quả in ra console:

130