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

Giải bài toán Sherlock và Mảng (Sherlock and Array) trong JavaScript

Watson cho Sherlock mảng A độ dài N. Xác định xem có phần tử nào mà tổng các phần tử bên trái bằng tổng bên phải không. Hàm nhận mảng số, trả về chỉ số phần tử đó hoặc -1 nếu không có.

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

Kết quả

Đầu ra trong console sẽ là:

4 -1