leetcode-面试题56-①。数组中出现的次数

题目描述:

leetcode-面试题56-①。数组中出现的次数

 

 方法一:分组异或

class Solution {
    public int[] singleNumbers(int[] nums) {
        int sum = 0;
        int [] res = new int[2];
        for(int num:nums){
            sum ^= num;
        }
        int lowbit = sum & (-sum);
        for(int num:nums){
            if((num & lowbit) == 0){
                res[0] ^= num;
            }else{
                res[1] ^= num;
            }
        }
        return res;
    }
}

 附:找出一个数二进制送第一位不是0的:h=num^(num&(num-1))

上一篇:88、go框架有哪些-转载——2020年07月30日12:56:43


下一篇:手写简单的线程池