码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-11-19 13:29:34      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:ret   lag   实现   数字   else   amp   get   log   array   

问题:

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

 

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

标签:ret   lag   实现   数字   else   amp   get   log   array   

原文地址:http://www.cnblogs.com/dracohan/p/6080105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!