我刚从考试中回来,这个考试有一个我不知道如何接近的问题:
给定一个排序数组(数组中的每个元素都大于或 等于前一个) arr 的正整数,找到 最小的正整数,它不是元素的总和 数组 arr ,其中数组中的每个元素只能出现一次 总之。
例如,给定数组{1,2,4,6},
3不是,因为3 = 1 + 2
...
因此结果将是14。
要求算法尽可能高效。我写了两个非常低效的算法,一个从1开始迭代每个数字,并用递归检查是否是总和;另一种算法记录了一个非常大的数组中数组的所有可能总和,并检查每次是否有两个连续和,其差值大于1(因此返回这些和之间的最小整数)。
P.S。 - 我们需要用Java编写它,但如果您有其他语言(如C或Python)的解决方案,请使用您熟悉的任何语言。