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

Tích tối đa của hai số nguyên theo thời gian tuyến tính trong JavaScript


Chúng tôi bắt buộc phải viết một hàm JavaScript nhận một mảng Số có số dương cũng như số âm và trả về tích tối đa của hai số trong một lần truyền.

Hãy viết mã cho chức năng này -

Ví dụ

const arr = [-1, -3, -4, 2, 0, -5];
const arr2 = [2, 3, 5, 7, -7, 5, 8, -5];
const produce = arr => arr.reduce((acc, val) => acc*val);
const maximumProduct = (arr = []) => {
   const [first] = arr;
   if(!first){
      return 0;
   };
   const creds = arr.reduce((acc, val) => {
      const { min, max } = acc;
      if(val > max[0]){
         max[1] = max[0];
         max[0] = val;
         return acc;
      };
      if(val < min[0]){
         min[1] = min[0];
         min[0] = val;
         return acc;
      };
      if(val > max[1]){
         max[1] = val;
         return acc;
      };
      if(val < min[1]){
         min[1] = val;
         return acc;
      };
      return acc;
   }, {
      min: [first, first],
      max: [first, first]
   });
   const { max, min } = creds;
   return produce(max) > produce(min) ? produce(max) : produce(min);
};
console.log(maximumProduct(arr));
console.log(maximumProduct(arr2));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

20
56