题目描述
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内,在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
思路
这道题比较特殊,数字唯一,且数字的范围是0~n-1,所以就是看从哪个数字开始这个数字不等于数字的下标了,使用二分查找找到它。
如果中间元素的值和下标相等,那么下一轮查找只需要查找右半边;如果中间元素的值和下标不相等,并且它前面一个元素和它的下标相等,它就是要找的数字;如果中间元素的值和下标不相等,并且它前面一个元素和它的下标不相等,就需要接着查找它的前半段。
剑指offer-0~n-1中缺失的数字
最新推荐文章于 2022-03-31 23:00:21 发布