找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5936|回复: 1
收起左侧

[米群网刷题小分队] LeetCode新题 Combination Sum III [java]

[复制链接]

47

主题

2

精华

379

积分

高级会员

Rank: 3Rank: 3

积分
379
发表于 5-24-2015 09:58 AM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
典型的dfs吧,或许有更好的解法?上DFS的代码:
public class Solution {
  public List<List<Integer>> combinationSum3(int k, int n) {
                List<List<Integer>> re = new ArrayList<List<Integer>>();
                List<Integer> tmp = new ArrayList<Integer>();
                dfs(re, 1, 0, k, n, tmp);
                return re;
        }

        private void dfs(List<List<Integer>> re, int cur, int sum, int k, int n,
                        List<Integer> tmp) {
                if (sum > n || tmp.size() > k) {
                        return;
                }
                if (tmp.size() == k && sum == n) {
                        re.add(new ArrayList<Integer>(tmp));
                } else {
                        for (int i = cur; i <= 9; i++) {
                                tmp.add(i);
                                dfs(re, i + 1, sum + i, k, n, tmp);
                                tmp.remove(tmp.size() - 1);
                        }
                }
        }
}

50

主题

1

精华

303

积分

高级会员

Rank: 3Rank: 3

积分
303
发表于 5-24-2015 04:27 PM | 显示全部楼层
感觉dfs里边代码可以写的更简洁一些。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表