组合求和

28 阅读1分钟

public void dfs(int[] candidates, int target, List<List> ans, List combine, int idx) { if (idx == candidates.length) { return; } if (target == 0) { ans.add(new ArrayList(combine)); return; } // 直接跳过 dfs(candidates, target, ans, combine, idx + 1); // 选择当前数 if (target - candidates[idx] >= 0) { combine.add(candidates[idx]); dfs(candidates, target - candidates[idx], ans, combine, idx); combine.remove(combine.size() - 1); } }