public static List<List<Integer>> kNumber2SumM(List<Integer> param, int k, int m) { List<List<Integer>> result = new ArrayList<>(); if (k == 1) { if (param.contains(m)) { List<Integer> temp = new ArrayList<>(); temp.add(m); result.add(temp); return result; } } for (int i = 0; i < param.size(); i++) { List<Integer> nextParam = new ArrayList<>(); nextParam.addAll(param); nextParam.remove(i); List<List<Integer>> lists = kNumber2SumM(nextParam, k - 1, m - param.get(i)); for (List<Integer> list : lists) { list.add(param.get(i)); // 不加这个判断就是一个全排列的结果 if (!hasList(result, list)) { result.add(list); } } } return result; }
点赞 评论

相关推荐

04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务