这里的第一个问题,如果这是重复的或不好的挑战,请不要对我大喊。
介绍
我自己想到了这个挑战,对于初学者来说,这似乎是一个很好的基本难题。这也可能有助于我确定要学习哪种编码语言。
挑战
给定一个小于或等于整数n
的数组,从数组中输出或返回最小数目的精确求和n
。
您可以选择编写函数或完整程序。
输入值
您可以放心假设0 <= n < 2^31
。
接受任何类型的数组或列表(允许vector
用于C ++或Java LinkedList
),以及n
一个可选参数length
,该参数指定数组的长度。
您还可以将输入作为用空格分隔的字符串,并n
用逗号或空格分隔:
1 5 7 3 7 3 6 3 2 6 3,10
1 5 7 3 7 3 6 3 2 6 3 10
如果更容易。
输出量
输出或从数组中返回总和恰好为的最小数目的数字n
。使用上面的示例:
1 5 7 3 7 3 6 3 2 6 3,10
您的程序应打印:
2
因为求和的最小数量10
是2
(7
和3
)。
如果没有解决方案,请打印或返回一个负数,0
“无解决方案”(尽管那不是很聪明),∞
(如建议的那样)或任何其他虚假值(空字符串除外)。
输入和输出示例
输入:
1 5 7 3 7 3 6 3 2 6 3,10
143 1623 1646 16336 1624 983 122,18102
5 6 9,12
输出:
2
3
-1
计分
这是代码高尔夫球,因此以字节为单位的最短代码获胜。
最佳答案将在圣诞节接受。
false
没有解决方案的案件吗?