本帖最后由 编程学徙 于 2014-5-10 02:25 编辑
[ 本帖最后由 编程学徙 于 2014-5-10 02:21 编辑 ]\n\n以下是代码:- /**
- *此程序解决的问题:数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8};
- *思路:把数组中重复的元素赋以int型的最小值,然后用另一个数组来接收不是最小值的数,最后输出;
- *步骤:
- *1、将数组中的元素与其后的元素一一比较;
- *2、如果元素相等,则把该元素赋值为int型的最小值(通常情况下,我们不用到这个值)。
- *3、遍历数组,把没有被赋为最小值的数赋给另一个数组;
- *4、输出这个数组;
- */
- class Chong_Fu
- {
- public static void main(String[] args)
- {
- int min = java.lang.Integer.MAX_VALUE;
- int [] array = {4,2,4,6,1,2,4,7,8};
- int n=array.length; //n用来统计元素被删除后的元素个数;
- int i,j;
- for(i=0;i<array.length-1;i++)
- {
- for(j=i+1;j<array.length;j++)
- {
- if(array[i]==array[j])
- {
- array[i] = min; //如果有元素与后面的某个元素值相等,则把该元素赋值为最小值,等同与删除这个数;
- n--;
- continue;
-
- }
- }
- }
- int b[] = new int [n];
- n = 0;
- for(int a:array)
- {
- if(a!=min)
- {
- b[n] = a;
- n++;
- }
- }
- for(int boo:b)
- {
- System.out.print("\t"+boo); //遍历数组b,输出结果;
- }
- System.out.println();
- }
- }
复制代码
以下是结果:
有个几小问题请教一下:
1、此程序有个缺点:如果原数组中有某个元素的值为int 型最小值,则无法正常输出,请问如何解决?
2、这个题是我的基础测试题,这种把基础测试题或以后的入学测试题拿到论坛上来讨论的做法,是否有违黑马规则?
|
|