zoukankan      html  css  js  c++  java
  • Leetcode No.39 组合总和

    此文转载自:https://blog.csdn.net/jxq0816/article/details/113079141

    一、题目描述

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

    candidates 中的数字可以无限制重复被选取。

    说明:所有数字(包括 target)都是正整数。
    解集不能包含重复的组合。 

    示例 1:
    输入:candidates = [2,3,6,7], target = 7,
    所求解集为:
    [
      [7],
      [2,2,3]
    ]

    示例 2:
    输入:candidates = [2,3,5], target = 8,
    所求解集为:
    [
      [2,2,2,2],
      [2,3,3],
      [3,5]
    ]

    提示:

    1 <= candidates.length <= 30
    1 <= candidates[i] <= 200
    candidate 中的每个元素都是独一无二的。
    1 <= target <= 500

    二、解题思路

    对于这类寻找所有可行解的题,我们都可以尝试用「搜索回溯」的方法来解决。

    回到本题,我们定义递归函数 dfs(target, combine, idx) 表示当前在 candidates 数组的第 idx 位,还剩 target 要组合,已经组合的列表为 combine。递归的终止条件为 target <= 0 或者 candidates 数组被全部用完。那么在当前的函数中,每次我们可以选择跳过不用第 idx 个数,

       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    [iOS]delegate和protocol
    Objective-c中@interface、@implementation、@protocal
    iOS应用的真机调试
    2016最新Java笔试题集锦
    Java面试题相关内容
    JSP面试题及答案
    JAVA面试题相关基础知识
    mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI
    Java中equals和==的区别
    java的Arrays类的应用
  • 原文地址:https://www.cnblogs.com/phyger/p/14331074.html
Copyright © 2011-2022 走看看