Để giải quyết bài toán này, chúng ta có thể sử dụng cách duyệt qua mảng và kiểm tra tổng của ba phần tử liên tiếp. Nếu có bất kỳ bộ ba phần tử nào có tổng bằng 7, hàm sẽ trả về true
. Nếu không tìm thấy, hàm sẽ trả về false
.
Dưới đây là cách triển khai hàm vnengineer_cal
:
function vnengineer_cal(arr) { // Duyệt qua mảng, trừ đi 2 để tránh vượt quá độ dài mảng for (let i = 0; i < arr.length - 2; i++) { // Tính tổng của ba phần tử liên tiếp const sum = arr[i] + arr[i + 1] + arr[i + 2]; // Nếu tổng bằng 7, trả về true if (sum === 7) { return true; } } // Nếu không tìm thấy bộ ba phần tử nào thỏa mãn, trả về false return false; }
arr.length - 2
, để đảm bảo không vượt quá độ dài của mảng khi xét bộ ba phần tử liên tiếp.i
, ta tính tổng của ba phần tử liên tiếp là arr[i]
, arr[i + 1]
, và arr[i + 2]
.true
.false
.console.log(vnengineer_cal([1, 2, 4, 0, 1])); // true (vì 1 + 2 + 4 = 7) console.log(vnengineer_cal([1, 2, 3, 0, 5])); // false (không có bộ ba nào có tổng bằng 7) console.log(vnengineer_cal([3, 2, 2, 0, 2])); // true (vì 3 + 2 + 2 = 7)
Hàm này có độ phức tạp thời gian là O(n), với n
là độ dài của mảng.