136 Single Number(找唯一数Medium)

题目意思:一个int数组,有一个数只出现一次,其他数均出现两次,找到这个唯一数

知识普及:~:非运算,单目运算符1为0,0为1;

       &:与运算,都为1则为1,否则为0

     |:或运算,全为0则为0,否则为1

          ^:异或运算,相同为0,不同为1

思路:将数组中元素进行异或运算,则只剩下0和唯一数,异或得到的是唯一数

 

 1 class Solution {
 2 public:
 3     int singleNumber(vector<int>& nums) {
 4         int res=0;
 5         for(int i=0;i<nums.size();++i){
 6             res^=nums[i];
 7         }
 8         return res;
 9     }
10 };

 

时间复杂度:O(n)

 

posted @ 2015-06-12 10:59  影翕  阅读(429)  评论(0编辑  收藏  举报