在一个数组中,除了一个数字是独立出现的,其他数字都重复了若干次,请找出这个独立存在的(用java实现)
展开全部
package test2;
import java.util.HashMap;
import java.util.Map;
/**
* class名:FindUniqueNumber
* class说明:在一个数组中,除了一个数字是独立出现的,其他数字都重复了若干次,请找出这个独立存在的(用java实现)
* @author Jr 2012/2/9
*
*/
public class FindUniqueNumber {
//如果有唯一的数则返回,如果没有唯一的数则返回0
private static int findNumber (int[] array) {
Map<Integer, Boolean> map = new HashMap<Integer, Boolean>();
for (int i = 0; i < array.length; i++){
if (map.get(array[i]) == null){
map.put(array[i], true);
} else if (map.get(array[i]) == true){
map.put(array[i], false);
}
}
for(int j=0; j < array.length; j++){
if(map.get(array[j]) == true){
return array[j];
}
}
return 0;
}
public static void main(String[] args){
int[] array = {3,3,2,2,1,1,5};
int uniqueNumber = findNumber (array);
System.out.println(uniqueNumber);
}
}
这样写有一点点问题,就是唯一的数不能为0。
import java.util.HashMap;
import java.util.Map;
/**
* class名:FindUniqueNumber
* class说明:在一个数组中,除了一个数字是独立出现的,其他数字都重复了若干次,请找出这个独立存在的(用java实现)
* @author Jr 2012/2/9
*
*/
public class FindUniqueNumber {
//如果有唯一的数则返回,如果没有唯一的数则返回0
private static int findNumber (int[] array) {
Map<Integer, Boolean> map = new HashMap<Integer, Boolean>();
for (int i = 0; i < array.length; i++){
if (map.get(array[i]) == null){
map.put(array[i], true);
} else if (map.get(array[i]) == true){
map.put(array[i], false);
}
}
for(int j=0; j < array.length; j++){
if(map.get(array[j]) == true){
return array[j];
}
}
return 0;
}
public static void main(String[] args){
int[] array = {3,3,2,2,1,1,5};
int uniqueNumber = findNumber (array);
System.out.println(uniqueNumber);
}
}
这样写有一点点问题,就是唯一的数不能为0。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询