Viết hàm đếm số cụm (cluster) liên tiếp của các số không âm (≥ 0) trong mảng.
Ví dụ
Mảng: [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0]
Cụm 1: chỉ số 3 (giá trị 0)
Cụm 2: chỉ số 9-11 (0, 1, 0)
Kết quả: 2 cụm
Giải pháp
Mã triển khai:
const arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0];
const positiveClusters = arr =>
arr.reduce((acc, val, i) => {
// Kết thúc cụm: val >= 0 VÀ (phần tử sau < 0 HOẶC hết mảng)
if (val >= 0 && (arr[i+1] < 0 || i === arr.length - 1)) {
acc++;
}
return acc;
}, 0);
console.log(positiveClusters(arr));
Kết quả
Đầu ra trong console:
2