答案是肯定的。
有一种方法,需要借助位图(bitmap)来实现。
位图是一种简单但是非常有用的数据结构。
你可以用一个数组来表示它,数组元素为0或者1,0代表不存在,1代表存在。
首先,遍历列表,将里面的元素加入位图中,这是一趟线性操作。
接着,从1遍历到100,依次判断当前数字是否存在于位图中。
如果不存在,那就是缺失的编号,直接返回。
这种方式需要同等大小的额外空间,但时间复杂度是很接近线性的。
其实这里也可以使用哈希表,而不使用位图。
但是,哈希表有额外的性能损耗,还是采用更简单的数据结构为好。
想到这里,杨成已经有了三种方法。
但是他有一个疑问:
有没有不需要借助额外内存空间,时间复杂度也能为线性的方法呢?
Loading...
未加载完,尝试【刷新】or【关闭小说模式】or【关闭广告屏蔽】。
尝试更换【Firefox浏览器】or【Chrome谷歌浏览器】打开多多收藏!
移动流量偶尔打不开,可以切换电信、联通、Wifi。
收藏网址:www.dd123.cc
(>人<;)