新手求解答!解决方法
新手求解答!
整形数组中只有一个数是不重复的,求出这个不重复的数。
import java.util.*;
public class Exercises15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++)
arr[i] = sc.nextInt();
System.out.println(singleNum(arr, n));
}
public static int singleNum (int[] arr, int n) {
int result = 0, count = 0;
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(arr[i] == arr[j])
count ++;
if(count >1) break;
}
if(count == 1) {
result = arr[i];
break;
}
}
return result;
}
}
问题:singleNum这个方法返回值永远是0 ,赋值语句result = arr[i]; 不起作用。怎么回事?
------解决思路----------------------
不是赋值不起作用,是代码逻辑问题。你的count在第二次循环的时候没有初始化也0所以保留了上一次循环的统计,结果一直不等于1所以返回0
整形数组中只有一个数是不重复的,求出这个不重复的数。
import java.util.*;
public class Exercises15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++)
arr[i] = sc.nextInt();
System.out.println(singleNum(arr, n));
}
public static int singleNum (int[] arr, int n) {
int result = 0, count = 0;
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(arr[i] == arr[j])
count ++;
if(count >1) break;
}
if(count == 1) {
result = arr[i];
break;
}
}
return result;
}
}
问题:singleNum这个方法返回值永远是0 ,赋值语句result = arr[i]; 不起作用。怎么回事?
------解决思路----------------------
不是赋值不起作用,是代码逻辑问题。你的count在第二次循环的时候没有初始化也0所以保留了上一次循环的统计,结果一直不等于1所以返回0