[刷题]Combination Sum

原创 2015年07月09日 10:05:55

[LintCode]Combination Sum

public class Solution {
    /**
     * @param candidates: A list of integers
     * @param target:An integer
     * @return: A list of lists of integers
     */
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        // 2015-08-28
        // candicates中不含重复元素,元素可以重复使用
        // 解集中不可以含相同解
        List<List<Integer>> rst = new ArrayList<List<Integer>>();
        if (candidates == null || candidates.length == 0) {
            return rst;
        }
        
        List<Integer> list = new ArrayList<>();
        Arrays.sort(candidates);
        helper(candidates, rst, list, target, 0);
        return rst;     
    }
    
    private void helper(int[] candidates, List<List<Integer>> rst, List<Integer> list,
            int left, int pos) {
        if (left == 0) {
            rst.add(new ArrayList<Integer>(list));
            return;
        }
        
        for (int i = pos; i < candidates.length; i++) {
            if (left - candidates[i] < 0) {
                break;
            }
            list.add(candidates[i]);
            helper(candidates, rst, list, left - candidates[i], i);
            list.remove(list.size() - 1);
        }
    }
}


leetCode 39.Combination Sum(组合总和) 解题思路和方法

Combination Sum Given a set of candidate numbers (C) and a target number (T), find all unique com...
  • xygy8860
  • xygy8860
  • 2015年07月09日 22:33
  • 1161

回溯详解及其应用:Leetcode 39 combination sum

原理 初入门 基本定义和概念 举栗子 编程思路 实践 生成符合规范的括号 combination sum n queen原理初入门有时会遇到这样一类题目,它的问题可以分解,但是又不能得出明确的动态规划...
  • c602273091
  • c602273091
  • 2017年01月31日 16:47
  • 348

【LeetCode-面试算法经典-Java实现】【216-Combination Sum III (组合数的和)】

【216-Combination Sum III (组合数的和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月28日 06:58
  • 3559

LeetCode OJ算法题(三十八):Combination Sum

题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations ...
  • op_yu
  • op_yu
  • 2014年07月25日 12:10
  • 377

LeetCode第39题之Combination Sum(两种方法)

思路:两种方法都是利用递归回溯,第二方法在第一种方法的基础上对原始数据先进行排序,这样可以剪枝,加快计算速度。第一种方法在LeetCode上测试运行的时间是24ms,第二种方法运行时间为16ms。 ...
  • u011954296
  • u011954296
  • 2016年06月18日 12:27
  • 183

Python 刷题(想练python的可以对着刷一刷,持续更新)

这道题的意思是说
  • geniusluzh
  • geniusluzh
  • 2014年04月23日 10:36
  • 7731

leetcode刷题经验

语言不是最重要的,思想最重要从做上面的题,我发现我更擅长一些数学技巧不高的程序题,习惯靠直觉立马书写代码,而非严格推理之后,再书写代码对于链表的题比较擅长,链表可以在纸上画画,关键要考虑的问题,就是链...
  • basycia
  • basycia
  • 2016年02月28日 15:31
  • 1392

谈谈程序员面试之刷题

前一段时间有一个非常有趣的故事(http://www.pingwest.com/sorry-cant-hire-you/  ),Max Howell (Homebrew的作者) 在 Google 面试...
  • github_39335046
  • github_39335046
  • 2017年06月29日 17:03
  • 1740

LeetCode刷题指南(一)

以下是我个人做题过程中的一些体会: 1. LeetCode的题库越来越大,截止到目前,已经有321个问题了。对于大多数人来说,没有时间也没有必要把所有题目都做一遍(时间充裕可以随意)。刷个100题左...
  • Lnho2015
  • Lnho2015
  • 2016年03月23日 15:02
  • 38299

比较好的刷题网站推荐

http://www.cnblogs.com/DarrenChan/p/5648422.html 1.Leetcode鼎鼎大名的Leetcode,据不完全统计在上面被刷过的题可以围绕地球...
  • dipolar
  • dipolar
  • 2017年03月09日 11:56
  • 750
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[刷题]Combination Sum
举报原因:
原因补充:

(最多只允许输入30个字)