落单的数
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出 [1,2,2,1,3,4,3],返回 4
挑战
一次遍历,常数级的额外空间复杂度
package www.dxb.com;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []A = null;
int n = A[0];
for(int i=1;i<A.length;i++){
n = n^A[i];
}
System.out.println(n);
}
}
这里主要采用异或运算即a^b^a=b
class Solution {
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> A) {
// write your code here
//采用异或的操作可以解决这个问题
if(A.empty())return 0;
int n = A[0];
for(int i = 1;i != A.size();++i){
n = n^A[i];
}
return n;
}
};
转载请联系1204712609@qq.com
想要的,我们一起拼命去争取

浙公网安备 33010602011771号