返回轨道
算法 · 2026-05-14 · 26 阅读

P6 单身数字

算法 26 阅读

信号摘要

难度:Easy · 时长:03:37 · leetcode 136 · lintcode 82

P6 单身数字

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个非空的整数数组,这个数组中有一个整数只出现了一次,其它的整数都出现两次,你要找出这个只出现一次的整数。

比如说,给你的数组是:

5, 7, 5, 6, 6

这里 7 只出现了一次,因此你要返回的就是 7。

代码

public class AlgoCasts {

  // Time: O(n), Space: O(1)
  public int singleNumberWithXOR(int[] nums) {
    int result = 0;
    for (int num: nums) result ^= num;
    return result;
  }

  // Time: O(n), Space: O(n)
  public int singleNumberWithSet(int[] nums) {
    Set<Integer> set = new HashSet<>();
    int sum = 0, uniqueSum = 0;
    for (int num: nums) {
      if (!set.contains(num)) {
        uniqueSum += num;
        set.add(num);
      }
      sum += num;
    }
    return 2 * uniqueSum - sum;
  }

}

📡 通讯频道