1437. Check If All 1's Are at Least Length K Places Away
题目简介
/**
* @param {number[]} nums
* @param {number} k
* @return {boolean}
*/
题目给我们一个数组 nums 以及一个数字 k
要求我们遍历数组求出数组是否所有的 1 中间都间隔至少 k 个 0,如果是返回 true,否则返回 false
解题思路
用一个变量记录上一次 1 出现的下标,之后每次出现 1 时只需要判断两个下标的距离就好
Javascript
/**
* @param {number[]} nums
* @param {number} k
* @return {boolean}
*/
var kLengthApart = function (nums, k) {
let lastIdxOf1 = -1
let cur = 0
while (cur < nums.length) {
if (nums[cur] === 1) {
if (lastIdxOf1 >= 0 && cur - lastIdxOf1 - 1 < k) {
return false
}
lastIdxOf1 = cur
}
cur++
}
return true
};