这里的第一个问题,如果这是重复的或不好的挑战,请不要对我大喊。
介绍
我自己想到了这个挑战,对于初学者来说,这似乎是一个很好的基本难题。这也可能有助于我确定要学习哪种编码语言。
挑战
给定一个小于或等于整数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没有解决方案的案件吗?