在一个数组中,只有一个数有一个。其他的都是成对的有两个。
比如 {99,22,99}
这个数组里面只有22一个是单独的,需要找出这个数。
使用到了^运算
返回这两个数的差的绝对值
例如: 4 ^ 2 返回 2
87 ^ 99 返回 12
如果是 99 ^ 99 就返回0
//
// t12_.cpp
// C++PLUS
//
// Created by mac on 2019/12/16.
// Copyright © 2019 mac. All rights reserved.
//
#include <stdio.h>
#include<iostream>
#include<vector>
using namespace std;
int SingleNumberInVec(vector<int> & vec){
if(vec.size() <= 0){
return 0;
}
int temp = vec[0];
int i = 1;
for(i = 1;i<vec.size();i++){
temp = temp ^ vec[i];
}
return temp;
}
int main(){
int arr[] = {33,22,44,55,99,55,44,33,22};
vector<int> vec(arr,arr+sizeof(arr)/sizeof(int));
cout<<SingleNumberInVec(vec)<<endl;
return 0;
}
测试结果: