LeetCode--Single Number
题目:
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?
代码:int singleNumber(vector<int>& nums) { int n = 0; for(int i = 0; i < nums.size(); ++i) { n ^= nums[i]; } return n; }
运用"按位异或"
a^b^a = b;
将所有数异或,所有出现两次的都消除,得到出现一次的那个.