现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。
数据范围:
, 数组中每个值满足 
进阶: 空间复杂度
,时间复杂度 )
进阶: 空间复杂度
public int singleNumber (int[] A) {
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<A.length;i++){
if(!map.containsKey(A[i])){
map.put(A[i],1);
}else{
map.put(A[i],map.get(A[i])+1);
}
}
for(Map.Entry<Integer,Integer> entry:map.entrySet()){
if(entry.getValue()==1){
return entry.getKey();
}
}
return 0;
}
} public int singleNumber (int[] A) {
int result=0;
for(int i=0;i<A.length;i++){
result^=A[i];
}
return result; public int singleNumber (int[] A) {
if(A.length==1){
return A[0];
}
Arrays.sort(A);
for(int i=0;i<A.length-1;i+=2){
if(A[i]!=A[i+1]){
return A[i];
}
}
return 0; public class Solution {
/**
*
* @param A int整型一维数组
* @return int整型
*/
public int singleNumber (int[] A) {
// 可以对整个数组 A 进行一个异或操作,因为相同的两个数异或结果为0 ,一个数与0异或等于这个数本身
int result = 0;
for (int i = 0; i < A.length; i++) {
result ^= A[i];
}
return result;
}
}
public class Solution {
public int singleNumber(int[] A) {
int result = A[0];
for(int i=1; i<A.length; i++){
result = result ^ A[i];
}
return result;
}
} import java.util.*;
public class Solution {
public int singleNumber(int[] A) {
Arrays.sort(A);
int len=A.length;
for(int i=0;i<len-2;i+=2){
if(A[i]!=A[i+1])
return A[i];
}
return A[len-1];
}
}
# Python # # @param A int整型一维数组 # @return int整型 # class Solution: def singleNumber(self , A ): # write code here for i in A: if A.count(i) == 1: return i
public static int singleNumber(int[] A) { int num = 0; for(int i=0;i<A.length;i++){ num^=A[i]; } return num; }