Java 查找最小整数who';它不是排序数组的和

Java 查找最小整数who';它不是排序数组的和,java,arrays,algorithm,performance,memory-efficient,Java,Arrays,Algorithm,Performance,Memory Efficient,我刚从一次考试中回来,考试中有一个问题我甚至不知道如何解决: 给定一个排序数组(数组中的每个元素都大于或 等于上一个)arr的正整数,找到 最小的正整数,它不是 arrayarr,其中数组中的每个元素只能出现一次 总之 例如,给定数组{1,2,4,6} 1不是答案,因为它是1的总和 出于同样的原因,2不是 3不是,因为3=1+2 13不是,因为13=1+2+4+6 14是答案,因为它不是数组中元素的总和(每个元素出现一次) 因此,结果将是14 要求算法尽可能高效。我写了两个非常低效的算法,

我刚从一次考试中回来,考试中有一个问题我甚至不知道如何解决:

给定一个排序数组(数组中的每个元素都大于或 等于上一个)arr的正整数,找到 最小的正整数,它不是 arrayarr,其中数组中的每个元素只能出现一次 总之

例如,给定数组{1,2,4,6}

  • 1不是答案,因为它是1的总和
  • 出于同样的原因,2不是
  • 3不是,因为3=1+2

  • 13不是,因为13=1+2+4+6
  • 14是答案,因为它不是数组中元素的总和(每个元素出现一次)
因此,结果将是14

要求算法尽可能高效。我写了两个非常低效的算法,一个迭代从1开始的每个数字,并用递归检查它是否是和;另一种算法记录了一个非常大的数组中所有可能的和,并每次检查是否有两个连续的和的差大于一(因此返回这些和之间的最小整数)


p、 我们需要用Java编写,但如果您有其他语言(如C或Python)的解决方案,请使用您喜欢的任何语言。

我认为这是一个完全可以接受的问题。“我认为这是一个完全可以接受的问题”问这个问题很好,前提是OP在试图解决问题时也会询问有关他们所面临问题的具体问题;这在某种程度上也意味着他们展示了他们尝试的解决方案。@Andy Turner如何展示他们对算法性质问题的尝试解决方案?@Rishav“我们需要在哪里用Java编写”通过展示Java编写的。这实际上是。(链接的问题并不完全相同,但部分答案是对该问题的回答。)