136.只出现一次的数字

【LeetCode热题100】--136.只出现一次的数字-LMLPHP

使用哈希表:

class Solution {
    public int singleNumber(int[] nums) {
        Map<Integer,Integer> map = new HashMap<>();
        for(int num:nums){
            Integer count = map.get(num);
            if(count == null){
                count = 1;
            }else{
                ++count;
            }
            map.put(num,count);
        }
        for(int val:map.keySet()){
            if(map.get(val) == 1){
                return val;
            }
        }
        return 0;
    }
}

使用异或:

  • 任何数和0异或都是原来的数
  • 任何数和自身异或结果是0
class Solution {
    public int singleNumber(int[] nums) {
        int single = 0;
        for (int num : nums) {
            single ^= num;
        }
        return single;
    }
}
10-16 05:39