码迷,mamicode.com
首页 > 其他好文 > 详细

Single Number

时间:2015-11-02 09:11:34      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

题目:

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?

解析:

用异或

 1 class Solution {
 2 public:
 3     int singleNumber(vector<int>& nums) {
 4         vector<int>::iterator it = nums.begin();
 5         int a = 0;
 6         while(it != nums.end())
 7             a ^= *it++;
 8         return a;
 9     }
10 };

根据异或这种特性还可以进行两个元素的交换工作

1 void swap3(int &a,int &b)
2 {
3     a ^= b;
4     b ^= a;
5     a ^= b;
6     cout<<"a:"<<a<<"    b:"<<b<<endl;
7 }

 

Single Number

标签:

原文地址:http://www.cnblogs.com/raichen/p/4929164.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!