136. Single Number

异或

public int singleNumber(int[] nums) {
    int res = 0;
    for (int num : nums) {
        res ^= num;
    }
    return res;
}

熟悉下set

public int singleNumber(int[] nums) {
    if (nums == null || nums.length <= 0) return -1;
    Set<Integer> set = new HashSet<>();
    for (int num : nums) {
        if (set.contains(num)) set.remove(num); //remove duplicated
        else set.add(num); 
    }
    return set.iterator().next();
}

两倍的set和减去原数组和, (2+1)*2 - 2+2+1)

return sum(set(nums)) * 2 - sum(nums)

results matching ""

    No results matching ""