现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。
数据范围: , 数组中每个值满足
进阶: 空间复杂度 ,时间复杂度
进阶: 空间复杂度 ,时间复杂度
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