给定一个整数数组,a
其中包含n个整数和一个整数x
;从中删除最少的元素a
,使之和a
等于x
。如果a
不能形成的组合,则x
返回假值。
正如评论中指出的那样,这是x的总和的最大值,对不起我的小数学头脑。自大学以来,我忘记了很多条款。
示例(真实):
f([1,2,3,4,5,6,7,8,9,10], 10) = [1,2,3,4]
f([2,2,2,2,2,2,2,2,2], 10) = [2,2,2,2,2]
f([2,2,2,2,-2,-2,-2,-4,-2], -8) = [2,2,-2,-2,-2,-4,-2]
f([-2,-4,-2], -6) = [-4,-2] OR [-2,-4]
f([2,2,2,4,2,-2,-2,-2,-4,-2], 0) = [2,2,2,4,2,-2,-2,-2,-4,-2]
(不变)
f([], 0) = []
(零和的情况不变)
示例(错误,任何一致的非数组值):
不可能提出理由: f([-2,4,6,-8], 3) = falsy (E.G. -1)
零和案例: f([], non-zero number) = falsy (E.G. -1)
- 注意:像这样的任何值
[-1]
都不能有效地伪造,因为它可能是真实的输出。
规则:
- 输入可以采用数组形式,也可以作为参数列表,最后一个或第一个为
x
。 - 输出可以是任何定界的整数列表。EG
1\n2\n3\n
或[1,2,3]
。 - 除整数数组外,任何值都可以用作虚假指示符。
- 您的代码必须最大化结尾数组的大小,顺序无关紧要。
- 例如,对于
f([3,2,3],5)
双方[2,3]
和[3,2]
同样有效。 - 例如,对于
f([1,1,2],2)
你只能返回[1,1]
为[2]
较短。
- 例如,对于
- 的总和
a
和的值都x
将小于2^32-1
和大于-2^32-1
。 - 这是代码高尔夫球,最低字节数获胜。
- 如果有多个相同大小的有效子数组,则不能全部输出。您必须选择一个并输出该一个。
让我知道是否已发布,找不到。
我发现这样的帖子:相关但已关闭,...