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)