首页 文章

在数组中找到缺少的数字?

提问于
浏览
-4

我的一个朋友很久以前就问了这个问题 . 他没有迭代阵列就问我这个问题 . 我在脑海中找到N数的和,然后从中减去数组的总和 . 另一个XOR计算 . 但是这些解决方案仍然需要迭代阵列 . 如果没有迭代数组存在这样的解决方案或算法,我会更加干净 . 此外,如果您要将此问题标记为重复,请参阅我的链接 .

3 回答

  • 3

    这个数组中缺少的数字是多少?

    1, 2, 3, 4, 5, 6, *
    

    * 代表您不允许阅读的数字,否则将是迭代 . )

  • 0

    如果数组中缺少数字,则必须检查它,这意味着数组的迭代 . 没有办法,没有迭代 .

  • 0

    一般情况下,你不能这样做 . 想象一下,你得到Yves Daoust的样本:

    [1, 2, 3, 4, 5, 6, ?]
    

    并且你被允许读取数组中的任何项目,但是最后一项 . 它是什么?我听到七个吗?不,这是一个典型的错误解决方案:

    item = i + (i-1)*(i-2)*(i-3)*(i-4)*(i-5)*(i-6)*F(i)
    

    其中 F(i) 是一个任意函数(好吧,不是任意的,有一些松散的限制,但是 F(i) 不能,比如 1/(i-3) ) . 让

    F(i) == 0           -> last item ==   7 
    F(i) == 1           -> last item == 727
    F(i) == (pi-i)/720  -> last item ==  pi
    ...
    

    您必须有更多限制,例如数组表示最小可能功率的多项式的值;在这种情况下,解决方案是 7

相关问题