标签:
转换为看一个排序数组中0多还是间隔的数字多的问题
? ?
先排序
? ?
然后遍历统计数组中0的个数
? ?
可以把等于0放到for循环条件里
? ?
减少遍历次数
? ?
然后从第一个不为0的index开始,比较相邻两个之间的差距
? ?
然后实现往后移index1=index2,index2++
?
package isContinuous44;
? ?
import java.util.Arrays;
? ?
public class IsContinuous44 {
static boolean isContinuous(int[] array){
Arrays.sort(array);
int numOf0=0;
int numOfDif=0;
//????????????????for(int i=0;i<array.length;i++){
//????????????????????????if(array[i]==0) numOf0++;
//????????????????}
//improve
for(int i=0;i<array.length&&array[i]==0;i++){
numOf0++;
}
int index1=numOf0;
int index2=index1+1;
while (index2<array.length) {
if (array[index1]==array[index2]) {
return false;
}
numOfDif+=array[index2]-array[index1]-1;
index1=index2;
index2++;
}
return (numOf0>numOfDif?true:false);
? ?
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array={0,4,6,0,7,8,10};
System.out.println(isContinuous(array));
}
? ?
}
标签:
原文地址:http://www.cnblogs.com/keedor/p/4373014.html