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

Subarray với sản phẩm tuyệt vời nhất trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các số nguyên (dương và âm) làm đối số đầu tiên và duy nhất. Hàm sẽ tìm ra và trả về sản phẩm của mảng con ở vị trí tối đa của nó.

Ví dụ -

Nếu mảng đầu vào là -

const arr = [4, -5, 2, -3, 1, -4, 0, -3];

Sau đó, đầu ra phải là -

const output = 120

vì mảng con có tích tối đa là [4, -5, 2, -3]

Ví dụ

Sau đây là mã -

const arr = [4, -5, 2, -3, 1, -4, 0, -3];
const maxProduct = (arr = []) => {
   if (arr.length === 0){
      return 0;
   };
   let max = arr[0],
   min = arr[0],
   greatest = arr[0];
   for (let i = 1; i <= arr.length - 1; i++) {
      let tempMax = max * arr[i];
      max = Math.max(
         arr[i],
         Math.max(min * arr[i], max * arr[i])
      );
      min = Math.min(arr[i], Math.min(min * arr[i], tempMax));
      greatest = Math.max(greatest, max);
   }
   return greatest;
};
console.log(maxProduct(arr));

Đầu ra

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

120