计算数组中的任意个数字的和为某一个值的组合

Posted 醉清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算数组中的任意个数字的和为某一个值的组合相关的知识,希望对你有一定的参考价值。

问题:

有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;
    }

 

以上是关于计算数组中的任意个数字的和为某一个值的组合的主要内容,如果未能解决你的问题,请参考以下文章

面试题34:二叉树的和为某一值的路径

和为定值的两个数

12 二叉树中和为某一值的路径

34二叉树中和为某一值的路径 //代码未通过

求一个数组的数字有几种组合方式,6个数相加等于100.用PHP写的程式

二叉树的和为某一条路径