题目来源:
leetcode题目,网址:1437. 是否所有 1 都至少相隔 k 个元素 - 力扣(LeetCode)
解题思路:
对两个 1 间间隔计数,若存在间隔小于 k ,返回false;否则返回true。
解题代码:
class Solution {
public boolean kLengthApart(int[] nums, int k) {
boolean res=true;
int count=-1;
for(int i=0;i<nums.length;i++){
if(nums[i]==0 && count!=-1){
count++;
}else if(nums[i]==0 && count==-1){
continue;
}else if(nums[i]==1 && (count==-1 || count>=k)){
count=0;
}else if(nums[i]==1 && count<k){
res=false;
break;
}
}
return res;
}
}
总结:
官方题解是记录上一个 1 及这个 1 出现的位置,通过数学得到间隔,效率较高。我写的好傻.......