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

Giải quyết vấn đề Sherlock và Array trong JavaScript

Watson đưa cho Sherlock một mảng A có độ dài N. Sau đó, anh ta yêu cầu anh ta xác định xem có tồn tại một mảng nào đó trong mảng sao cho tổng các phần tử ở bên trái của nó bằng tổng các phần tử ở bên phải của nó hay không.

Chúng ta phải viết hàm này, nó phải nhận một mảng Numbers, và bất kỳ danh sách số nào như vậy trong mảng, nó sẽ trả về chỉ mục của nó, nếu không nó sẽ trả về -1. Vì vậy, hãy viết mã cho chức năng này -

Ví dụ

const arr = [1, 2, 3, 4, 5, 7, 3];
const arr2 = [4, 6, 3, 4, 5, 2, 1];
const isSherlockArray = arr => {
   let sum = arr.reduce((acc, val) => acc+val);
   let leftSum = 0;
   for(let i = 0; i < arr.length; i++){
      sum -= arr[i];
      if(sum === leftSum){
         return i;
      };
      leftSum += arr[i];
   };
   return -1;
};
console.log(isSherlockArray(arr));
console.log(isSherlockArray(arr2));

Đầu ra

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

4
-1