算法目的:在其他数都出现偶数次的数组中找到出现奇数次的数
算法要求:时间复杂度O(n),空间复杂度O(1)
算法思路:对于一个整数n:0^n=n n^n=0,根据这两条规则,我们知道在这个数组中出现偶数次数的n^n=0。
实现:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package algorithm_database;
/**
*
* @author zhengchao
*/
public class findTheOnly {
public static void main(String[] args){
int[] intStr = {1,2,3,4,5,4,3,2,1};
System.out.println(findYOU(intStr));
}
public static int findYOU(int[] intStr){
int ee = 0;
for(int i=0;i<intStr.length;i++){
ee^=intStr[i];
}
return ee;
}
}
算法限定整形数组必须只有一个整数的个数为奇数。