给出从1到N的正整数,其中N可以达到10 ^ 9.缺少来自这些给定整数的一些K个整数.K可以是最多10 ^ 5个元素.我需要找到无法通过有效方式从剩余的NK元素中形成的最小总和.
例; 假设我们有N = 5,这意味着我们有{1,2,3,4,5}并且让K = 2而缺少的元素是:{3,5}那么剩下的数组现在是{1,2,4}最小值不能从这些剩余元素形成的总和为8,因为:
1=1
2=2
3=1+2
4=4
5=1+4
6=2+4
7=1+2+4
Run Code Online (Sandbox Code Playgroud)
那么如何找到这个不可归小的最小值呢?
如果我可以通过这种方法存储所有剩余元素,我知道如何找到它:
我们可以使用类似于Eratosthenes筛子的东西,用于寻找素数.同样的想法,但为不同的目的有不同的规则.
但是,它的空间要求很高.有没有更好更快的方法呢?