Single Number

来看这个题,https://oj.leetcode.com/problems/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?

第一反应就是异或,唯一需要确认的就是异或运算是否支持交换律,通过这里,http://longzxr.blog.sohu.com/190676432.html,确认了支持,那么答案就很简单了:

class Solution {
public:
    int singleNumber(int A[], int n) {
        int r = 0;
        for (int i = 0; i < n; i++) {
            r ^= A[i];
        }
        return r;
    }
};

历史评论

Single Number II | ZRJ (2014-10-28 21:24:00):

[…] https://oj.leetcode.com/problems/single-number-ii/,承前,http://zrj.me/archives/1344,这个题目是每个数字出现三次,要求找出只出现一次的数字: […]

使用 Hugo 构建
主题 StackJimmy 设计