0
点赞
收藏
分享

微信扫一扫

【LintCode】落单的数

描述 给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。 n≤100 样例样例 1: 输入:[1,1,2,2,3,4,4] 输出:3 解释: 仅3出现一次 样例 2: 输入:[0,0,1] 输出:1 解释: 仅1出现一次

Java代码如下:

public class Solution {
    /**
     * @param A: An integer array
     * @return: An integer
     */
    public int singleNumber(int[] A) {
        // write your code here
    if(A.length == 0){
        return 0;
    }
    int a=0;
    for (int i=0;i<A.length;i++){
        a^=A[i];
    }
    return a;
    }
}

解释 因为有2n+1个数所以数的个数为奇数个,利用^=运算符则可找出目标数字。 关于^=的解释我在博客里找到了如下两篇 链接如下:https://yq.aliyun.com/articles/58335 https://blog.csdn.net/grey_mouse/article/details/82991053 如有更好解决方法,烦请告知。可评论下方,供大家讨论。

举报

相关推荐

0 条评论