class Solution {
public boolean isStraight(int[] nums) {
Arrays.sort(nums);
// 记录零的个数,本题的零可以代替任何数
int count = 0;
for(int i = 0; i < nums.length; i++){
if(nums[i] == 0) ++count;
else if(i > 0 && nums[i - 1] != 0){
// 中间的间隔,缺了distance - 1的数
int distance = nums[i] - nums[i - 1];
// 相邻的相等直接false
if(distance == 0) return false;
count = (distance == 1) ? count : count - distance + 1;
}
}
// m<0说明这里面的0的个数不够代替中间缺的数
return count >= 0;
}
}