计算数组中的任意个数字的和为某一个值的组合
问题:
有1,3,2,4,5这几个数字,把这几个数相加结果等于6
结果可以是
1,3,2
2,4
1,5
实现:
public Map get(int result, Map<String, Object> map, boolean flag) { int array[] = new int[]{1, 3, 2, 4, 5}; for (int i = 0; i < array.length; i++) { int value = result - array[i]; if ((value != array[i] || flag) && value > 0) { for (int j = 0; j < array.length; j++) { if (value == array[j]) { if (!map.containsKey(String.valueOf(array[i])) && !flag) { map.put(String.valueOf(value), array[i]); } else if (flag) { if (result > array[i] && array[i] > array[j]) { map.put(result + " " + array[i], array[j]); } } } else { int two = value - array[j]; if (two > 0) { if (value + array[j] < 6) { get(two, map, true); } } } } } } return map; }