假设数组为:[1,2,5,7,10,13,17,21],并且您必须找到总数等于31的5个数字。什么是算法?查找与给定总和相等的数组元素
回答
对于像您这样的小阵列,效率并不意味着太高。诀窍是让它快速。像这样的东西会起作用(用Matlab编写,但它可以相当容易地翻译成任何语言):
array=[1, 2, 5, 7, 10, 13, 17, 21];
sum_val=31;
for a=1:(length(array)-4]
for b=(a+1):(length(array)-3)
for c=(b+1):(length(array)-2)
for d=(c+1):(length(array)-1)
for e=(d+1):(length(array)-0)
if array(a)+array(b)+array(c)+array(d)+array(e)=sum_val
fprintf("%i+%i+%i+%i+%i=%i",array(a),array(b),array(c),array(d),array(e),sum_val);
end
end
end
end
end
感谢Pearsonartphoto,实际上这个小数组只是为了举一个例子.. :) – DarkKnight 2012-03-09 05:45:07
@DarkKnight:我想到了很多...有很多优化可以完成,例如,如果你在sum_value之上,然后跳到下一个循环等,但这是一个开始。 – PearsonArtPhoto 2012-03-09 05:45:47
@Pearsonartphoto:(+ 1)不是为了解决问题,而是为了你的照片......;)......真棒摄影...... :) – 2012-03-09 05:46:50
- 1. 从总和等于给定数的未排序数组中查找给定数量的元素
- 2. 当给出子阵列的总和时查找数组元素
- 3. 查找给定元素数组(所有元素都是唯一的)中的元素总和为
- 4. 找到两个元素,所以总和等于给定值
- 5. 如何查找javascript数组中的相等元素数
- 6. 查找给定数字的总和
- 7. 查找预排序数组中的两个元素总和等于某个值
- 8. 与相同的数组元素总和的MongoDB聚合如何?
- 9. 查找数组(或列表等)中指定元素的深度
- 10. 查找连续元素相差1的数组中的元素
- 11. 查找给定索引以外的数组中的元素
- 12. 查找给定的一组整数的总和达到给定总和的所有组合
- 13. 总和数组元素
- 14. 如何查找落在给定间隔内的数组元素?
- 15. 如何查找数组中给定元素的所有索引?
- 16. 查找给定数组中的两个重复元素
- 17. 给定数组中的元素找到等于目标值的组合
- 18. 查找元素数组的最大总和的算法,使得不超过k个元素相邻
- 19. 查找具有给定总和的元素对是否存在于大整数数组中
- 20. 查找给定元素后的实例
- 21. Python:查找数组总和
- 22. 如何查找数组是否有与我的给定键相同的任何两个元素(i + j)?
- 23. 检查数组中的元素是否相等 - C++
- 24. C++如何检查数组中的元素是否相等?
- 25. 检查数组中的至少两个元素是否相等
- 26. 查找不同数字组合的数量,使其总数等于总和
- 27. 如何总结给定元素左侧的N个数组元素?
- 28. 数组元素的总和java
- 29. 查找小于100的素数总和
- 30. 查找数组中的多数元素
Um。背包问题。 NP完全问题。 – 2012-03-09 05:26:51
这是一个问题?首先提到你尝试过什么。 – Rakesh 2012-03-09 05:26:52
如果你不关心效率,也许只是蛮横的......? – Daniel 2012-03-09 05:28:25