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