答案是肯定的。
有一种方法,需要借助位图(bitmap)来实现。
位图是一种简单但是非常有用的数据结构。
你可以用一个数组来表示它,数组元素为0或者1,0代表不存在,1代表存在。
首先,遍历列表,将里面的元素加入位图中,这是一趟线性操作。
接着,从1遍历到100,依次判断当前数字是否存在于位图中。
如果不存在,那就是缺失的编号,直接返回。
这种方式需要同等大小的额外空间,但时间复杂度是很接近线性的。
其实这里也可以使用哈希表,而不使用位图。
但是,哈希表有额外的性能损耗,还是采用更简单的数据结构为好。
想到这里,杨成已经有了三种方法。
但是他有一个疑问:
有没有不需要借助额外内存空间,时间复杂度也能为线性的方法呢?<br /> 《编程之战》第二百四二章 位图的方法
正在手打中,请稍等片刻,内容更新后,请重新刷新页面,即可获取最新更新!
《<b>编程之战</b>》笔趣阁全文字更新,牢记网址:www.biquger.com <br />