Computer >> Máy Tính >  >> Lập trình >> Javascript

Tổng số sản phẩm tối đa có thể có trong JavaScript

Chúng ta được cung cấp hai mảng giả sử, arr1 và arr2 của các Số dương. Số lượng giá trị trong cả hai mảng là như nhau.

Chúng tôi được yêu cầu viết một hàm tìm tổng các tích tối đa của các phần tử của chúng.

Mỗi phần tử trong arr1 phải được nhân với chính xác một phần tử trong arr2 và ngược lại sao cho mỗi phần tử của cả hai mảng xuất hiện đúng một lần và tổng sản phẩm được tạo ra là lớn nhất.

Ví dụ:nếu,

arr1 = [5,1,3,4,2] and,
arr2 = [8,10,9,7,6]

Khi đó, tổng sản phẩm có thể là -

5*6 + 1*7 + 3*9 + 4*10 + 2*8

Mặc dù, nó có thể không phải là tổng lớn nhất.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra trong bảng điều khiển -

130