找出丢失的数字

找出丢失的数字】  

  有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里。请找出丢失的数字。

解法:快速排序改造。

时间复杂度:O(N)。

具体解释:

  1)题目特点数字为1-N,所以在排序过程中,每次中位数取当前范围的n/2,则必然可以将数组拆分成等长的2份。

  2)当一次中位数分段后,看哪边的实际数小于预期数,符合这一条件的段继续查找,和预期相等的抛弃。

  3)在过程中,如果发现取的中位数N/2不存在,则此N/2就是其中一个丢失的数。

解法二:

  扫两遍,第一遍,从头到尾,依次将a[i]转换到对应位置上。

                     第二遍,找出对应位置为null的的index,这个index就是缺失的值。

原文地址:https://www.cnblogs.com/tekkaman/p/3163335.html