classSolution { public: boolkLengthApart(vector<int> &nums, int k) { //Just need to check if adjacent ones are at least k elements apart int last = -1, i, n = nums.size(); // Find the first 1 for (i = 0; i < n; i++) { if (nums[i] == 1) { last = i; break; } }
if (last == -1) { returntrue; } for (i = last + 1; i < n; i++) { if (nums[i] == 1) { if (i - last - 1 < k) { returnfalse; } else { last = i; } } } returntrue; } };