Single Number

来源:互联网 发布:淘宝街拍用什么相机 编辑:程序博客网 时间:2024/06/05 06:18

Given an array of integers, every element appears twice except for one. Find that single one.

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

解题思路:

这道题主要考察位运算,x ^ x = 0,数组中只有一个数字出现一次,其他数字都出现了两次,对所有数字进行异或运算后,将得到只出现一次的那个数。

代码:

#include <iostream>#include <vector>using namespace std;int singleNumber(vector<int>& nums){     int sum = 0, len = nums.size();     for(int i = 0; i < len; i ++)     {         sum = sum ^ nums[i];     }     return sum;}int main(){    vector<int> nums;    int num;    while(cin>>num)    {        nums.push_back(num);    }    cout<<singleNumber(nums);}