方法一 两次遍历:
第一次遍历保存所有1的位置到res里,第二次遍历res检查是否所有相邻元素之间间隔都>=k
var kLengthApart = function(nums, k) {let res=[]for(let i=0;i<nums.length;i++){if(nums[i]===1){res.push(i)}}for(let i=1;i<res.length;i++){if(res[i]-res[i-1]-1<k) return false}return true
};
消耗时间和内存情况:
方法二 一次遍历:
记录当前的1的位置和上一个1出现的位置,检查两次位置间隔是否>=k
var kLengthApart = function(nums, k) {let prev=-1for(let i=0;i<nums.length;i++){if(nums[i]==1){if(prev!=-1 && i-prev-1<k){return false}prev=i}}return true
};
消耗时间和内存情况: