摘要: 这是我面试A公司时碰到的算法题,题目大意是一本书缺了一页,然后书页顺序被打乱,问如何迅速找到缺失的那一页?思路:其实就是在乱序数组里面找缺失的一个数,有以下方法1、直接排序,然后遍历一次 时间复杂度O(NlogN),不需要额外空间2、用bitmap思想,开一个大数组,可以用bitset以节省空间,遍历一遍该数组,出现的数字置位为1,遍历完毕后,没有置位的那一位对应的数就是缺失的数字,时间复杂度O(N),但是需要O(N)的额外空间3、原地桶排序思想,遍历数组,如果脚标与值相等不做任何处理;否则交换该数到其值索引的那个位置,对于被占用位置的数字,采用同样的方法放到其值索引的位置,直到数组末尾,此时 阅读全文
posted @ 2012-03-17 23:16 yangleo 阅读(561) 评论(0) 推荐(0) 编辑