黑马程序员技术交流社区

标题: 去掉数组中重复的数字 [打印本页]

作者: ziyangfgt    时间: 2017-6-8 10:38
标题: 去掉数组中重复的数字
public static int[] changemethodone(int src[]){
int length=src.length;
int[] taget=new int[length];

int index=0;
taget[0]=src[0];
for(int i=1;i<length;i++){
if(taget[index]!=src[i]){
index++;
taget[index]=src[i];
}
}
return taget;
}


在上面的方法中,声明了一个与传入数组长度相等的数组,根据循环判断是否有重复的数字,滨江不重复的数字放入声明的数组中,

如果传入数组中存在重复的数字,那么这个数组的长度应会小于传入数组的长度,但是这样就造成了数组长度的浪费。

public static int[] changemethodtwo(int src[]){

int length=src.length;

int[] tagetindex=new int[length];

int tagetlength=length;

for(int i=0;i<length;i++){

tagetindex[i]=0;

}

for(int j=1;j<length;j++){

if(src[j]==src[j-1]){

tagetindex[j]=1;

tagetlength--;

}

}

int[] target=new int[tagetlength];

int index=0;

for(int k=0;k<length;k++){

if(tagetindex[k]==0){

target[index++]=src[k];

}

}

return target;

}





在上面的方法中,也声明了一个与传入数组长度相等的数组tagetindex,值初始化全为0.循环进行判断重复数字的个数,

如果存在重复数字则数组tagetindex元素赋值为1,然后在声明一个数组target,长度为(tagetindex.length-重复数字个数)。

当tagetindex数组中元素为0的,将数组src元素下表等于tagetindex元素中部位0的下标的元素值赋值给target。

输入数组{1,1,2,3,4,5,6,9,9,12,53}

得到的结果为

第一种方法去掉数组中重复数字结果:

1    2    3    4    5    6    9    12    53    0    0

第二种方法去掉数组中重复数字结果:

1    2    3    4    5    6    9    12    53




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2