关闭

82.Single Number-落单的数(容易题)

标签: LintCode位运算
143人阅读 评论(0) 收藏 举报
分类:

落单的数

  1. 题目

    给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

  2. 样例

    给出 [1,2,2,1,3,4,3],返回 4

  3. 挑战

    一次遍历,常数级的额外空间复杂度

  4. 题解

异或操作满足交换律和结合律。

public class Solution {
    /**
     *@param A : an integer array
     *return : a integer 
     */
    public int singleNumber(int[] A) {
        if (A.length == 0) 
        {
            return 0;
        }

        int n = A[0];
        for(int i = 1; i < A.length; i++) 
        {
            n = n ^ A[i];
        }

        return n;
    }
}

Last Update 2016.8.31

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39188次
    • 积分:2863
    • 等级:
    • 排名:第12446名
    • 原创:261篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类