阅读 44457 次
发表时间:2010-05-28
public static void main(String[] args) {

int[] intArray = { 123, 123, 124, 125 };
int n;
int count = 0;
for (int i = 0; i < intArray.length; i++) {
if (i < intArray.length - 1) {
if (intArray[i] == intArray[i + 1]) {
count++;
} else {
if (intArray[i] == intArray[i - 1]) {
count++;
}
}
}

for (int j = 0; j < intArray.length - i - 1; j++) {
if (intArray[j] > intArray[j + 1]) {
n = intArray[j];
intArray[j] = intArray[j + 1];
intArray[j + 1] = n;
}

}

}

int max = intArray[intArray.length - 1];
int min = intArray[0];
if ((max - min) == intArray.length - count) {
System.out.println("Success");
} else {
System.out.println("faile");
}

}
发表时间:2010-05-28


/**
   *
   * TODO 给定一个int数组,写一个函数判断该数组中的所有数字是否能组成连续数字。
   * 如[1,3,4,6,2,5]能组成连续数字,【1,2,5,4,7】不能。数组中的数也可能重复
   * @param intArray
   * @return
   */
  public static boolean canLine(int[] intArray) {
if (intArray == null || intArray.length < 1) {
return false;
}
Arrays.sort(intArray); 
for (int i = 0; i < intArray.length -1; i++)  {
  if (!(intArray[i] + 1 == intArray[i + 1] || intArray[i] == intArray[i + 1])) {
      return false;
  }
}
return true;
  }
发表时间:2010-06-01
boy00fly 写道


/**
   *
   * TODO 给定一个int数组,写一个函数判断该数组中的所有数字是否能组成连续数字。
   * 如[1,3,4,6,2,5]能组成连续数字,【1,2,5,4,7】不能。数组中的数也可能重复
   * @param intArray
   * @return
   */
  public static boolean canLine(int[] intArray) {
if (intArray == null || intArray.length < 1) {
return false;
}
Arrays.sort(intArray); 
for (int i = 0; i < intArray.length -1; i++)  {
  if (!(intArray[i] + 1 == intArray[i + 1] || intArray[i] == intArray[i + 1])) {
      return false;
  }
}
return true;
  }



这种方法应该是最简洁的,性能也不错!
发表时间:2010-06-03
public class Line {

public static void main(String[] args) {
int[] a = { 1, 1, 2, 5, 3, 8, 4 };
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (a[i] < a[j]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}

int min = a[0];
int max = a[a.length - 1];

int first = 0;
int end = 0;
for (int i = 0; i < a.length; i++) {
System.err.print(" " + a[i] + " ");
if (i + 1 != a.length) {
if ((a[i] == min && a[i + 1] != min)) {
first = i;
}
if (a[i] == max && a[i + 1] == max) {
end = i;
break;
}
} else {
end = i;
}

}

System.err.println(first + "," + end);
boolean flag = false;
for (int i = first; i < end; i++) {
flag = false;
int tmp = a[i + 1] - a[i];
System.err.println("a[i+1]=" + a[i + 1]);
System.err.println(tmp);
if (tmp == 0 || tmp == 1) {
flag = true;
}
}
if (!flag) {
System.err.println("無解");
} else {
System.err.println("有解");
}

}

}
发表时间:2010-06-30
王者之剑 写道
唉,已经有人给出了比较好的答案(kimmking,qhfu),后面还会冒出来一堆错误的,讨论问题,最可悲的事情莫过于此:连正确的答案都不知道是正确的,还有什么好讨论的?

qufu那代码写的让人蛋疼....(不过MIX,MIN初始化学习了,没这么用过,挺漂亮)
让我想起当年的90%的工程师写不出二分查找了...
if (maxValue - minValue >= arrayLen - 1) {
            return false;
        }
...
boolean isEnd = false;
        for (int index = 0; index < arrayLen; index++) {
            if (isEnd && bucketArray[index] > 0) {/*诡异的思路*/
                return false;
            }
            if (bucketArray[index] == 0) {
                isEnd = true;
            }
        }

        return true;
发表时间:2010-06-30
哇你长得真高 写道
max-min+1 == length

同意这个最简单
发表时间:2010-07-22
zhangyatong 写道
哇你长得真高 写道
max-min+1 == length

同意这个最简单

这个等式成立有个前提,数组中的元素不能给有重复的!
发表时间:2010-07-22
		int x=0;
		int [] ary={4,6,3,1,1,2,3,5,6,8,9,3,7};
		Arrays.sort(ary);
		x=ary[0];
		for (int i=0;i<ary.length;i++)
		{
		   if(ary[i]-1 == x )
			{
				x++;
			   continue;
			}
			if(ary[i] == x)continue;
			else
			{
				System.out.println("数组不符合要求!");
				break;
			}
		}
		if(ary[ary.length-1] == x )
		System.out.println("数组为按顺序排列的数!");
发表时间:2010-09-15
public boolean isInARow1(int[] arr){
Arrays.sort(arr);
for (int i = 0; i < arr.length - 1; i++) {
if((arr[i+1] - arr[i]) != 1){
return false;
}
}
return true;
}



这种问题千万不能用大家都用的方法求解,否则你就杯具了...
发表时间:2010-09-15
aaron0502 写道
public boolean isInARow1(int[] arr){
Arrays.sort(arr);
for (int i = 0; i < arr.length - 1; i++) {
if((arr[i+1] - arr[i]) != 1){
return false;
}
}
return true;
}



这种问题千万不能用大家都用的方法求解,否则你就杯具了...

Global site tag (gtag.js) - Google Analytics