海棠书屋 > 科幻小说 > 编程之战 > 第二百四二章 位图的方法
    答案是肯定的。

    有一种方法,需要借助位图(bitap)来实现。

    位图是一种简单但是非常有用的数据结构。

    你可以用一个数组来表示它,数组元素为0或者1,0代表不存在,1代表存在。

    首先,遍历列表,将里面的元素加入位图中,这是一趟线性操作。

    接着,从1遍历到100,依次判断当前数字是否存在于位图中。

    如果不存在,那就是缺失的编号,直接返回。

    这种方式需要同等大小的额外空间,但时间复杂度是很接近线性的。

    其实这里也可以使用哈希表,而不使用位图。

    但是,哈希表有额外的性能损耗,还是采用更简单的数据结构为好。

    想到这里,杨成已经有了三种方法。

    但是他有一个疑问:

    有没有不需要借助额外内存空间,时间复杂度也能为线性的方法呢?

    ()