Find Miss Num

[TOC]

FindMissNum

Question

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array. For example, Given nums = [0, 1, 3] return 2. Note: Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

Translate

给定一个包含从0,1,2,…, n,查找数组中缺失的那一个。例如,给定nums =[0,1,3]返回2。 注意:你的算法应该以线性运行时复杂度运行。你能仅仅使用恒定的额外空间复杂度来实现它吗

Answer

Answer one:

  // 借用BitSet实现,不用了解BitSet原理,直接套白狼
  public int missingNumberInByBitSet(int[] array) {
    BitSet bitset = new BitSet(arrays.length);
    for (int item : arrays) {
      bitset.set(item);
    }
    return bitset.nextClearBit(0);
  }

Answer two:

Analysis

飞机票:BitSet

Last updated