以最快的方法 找出一组连续数字中缺少的那一个
例如{3,4,5,6,8,9},以最快的方法找出 --------------------编程问答----------------------------------------编程问答-------------------- 7 这个问题 我用右眼就看出来了. --------------------编程问答-------------------- int[] array={3,4,5,6,8,9};
static int GetValue(int[] n)
{
int low = 0;
int high = n.Length - 1;
while (low < high)
{
int mid = (low + high) / 2;
if (n[mid] > n[0] + mid) high = mid;
else low = mid;
if (high - low == 1)
{
if (n[high] - n[low] == 1) low = high;
break;
}
}
return n[low] + 1;
}
int missingNum=((array[0]+array[array.Length])*array.Length)/2-array.Sum(); --------------------编程问答-------------------- 错了 改成int[] array={3,4,5,6,8,9};
int missingNum=((array[0]+array[array.Length-1])*array.Length)/2-array.Sum(); --------------------编程问答--------------------
如果只是一组连续数字中寻找缺失的一个数字就可以直接用这个方法
有个小错误, 乘数array.Length应该加1
int[] array={3,4,5,6,8,9};
int missingNum=((array[0]+array[array.Length-1])*(array.Length+1))/2-array.Sum();
补充:.NET技术 , C#