1,思路分析
我的思路是在创建一个数组,使用两个嵌套for循环对数组的每一个元素和其他元素相比较,当发现有相同的数字时则不把这个数字存入到另一个数组中,反之则存入,最后将新建数组的元素输出出来,同时注意排除数组初始化时的0。
2, 代码实现
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int m=0;//标志位,用来判断数组中是否存在相同元素 0为存在,1为不存在
System.out.println("请输入数组的长度:");
int n=sc.nextInt();
int[] arr=new int[n];
int[] arr1=new int[n];
System.out.println("请输入数组的元素");
Scanner sc1=new Scanner(System.in);
for(int i=0;i<=n-1;i++){
arr[i]=sc1.nextInt();
}
for(int i=0;i<arr.length;i++){//将数组的每一个元素和其他元素进行比较,出现相同元素并且数组下标不同,则令m=0,若没有出现相同元素,则令m=1
for (int j=0;j<arr.length;j++){
if(arr[i]==arr[j]&&i!=j){
m=0;
break;
}else{
m=1;
}
}
if(m==1){//没有重复的数字存到另一个数组中
arr1[i]=arr[i];
}
}
for(int k=0;k<arr1.length;k++){
if(k==0){
System.out.print("[");
}
if(arr1[k]!=0 && k!=arr1.length-1) {
System.out.print(arr1[k]+",");
}
if(arr1[k]!=0 &&k==arr1.length-1){
System.out.print(arr1[k]);
}
if(k==arr.length-1){
System.out.print("]");
}
}
}请输入数组的长度:
6
请输入数组的元素
1
1
2
5
6
9
[2,5,6,9]3,存在的问题
这样子来解决需要数组当中不能出现0,不然在结果输出的时候将会把0给剔除,暂时还没想到更好的解决办法,代码还不够严谨,时间复杂度较高为o(),用到了两个嵌套for循环,需要找到提升点。
版权声明:本文为m0_47187960原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。