当前位置:编程学习 > C#/ASP.NET >>

以最快的方法 找出一组连续数字中缺少的那一个

例如{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;
}
--------------------编程问答-------------------- 7  这个问题 我用右眼就看出来了. --------------------编程问答-------------------- int[] array={3,4,5,6,8,9};
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();  --------------------编程问答--------------------
引用 4 楼 sj490790083 的回复:
错了 改成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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,