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

    地址:https://leetcode-cn.com/problems/combination-sum/

    <?php
    /**
     * Created by PhpStorm.
     * User: huahua
     * Date: 2020/10/22
     * Time: 上午11:47
    39. 组合总和
    给定一个无重复元素的数组 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
    
     */
    class Solution {
    
        /**
         * @param Integer[] $candidates
         * @param Integer $target
         * @return Integer[][]
         */
        public $res = [];
        function combinationSum($candidates, $target) {
            if ($target <= 0) return [];
            sort($candidates);
            $this->cs($candidates,$target,[],0);
            return $this->res;
        }
    
        public function cs($nums,$target,$list,$start){
            if ($target <0 ) return ;
            if ($target == 0){
                $this->res[] = $list;
                return;
            }
            for ($i = $start;$i <count($nums);$i++){
                if ($target - $nums[$i] <0)break;
                $list[] = $nums[$i];
                $this->cs($nums,$target - $nums[$i],$list,$i);
                array_pop($list);
            }
        }
    }
  • 相关阅读:
    grub menu from pygrub
    Unix调试的瑞士军刀:lsof
    Quantum & r2q
    Linux TC基于CBQ队列的流量管理范例
    hfsc
    用bash做个tcp客户端
    [转]HFSC Scheduling with Linux
    [转]如何判断 Linux 是否运行在虚拟机上
    TSO
    使用VS2008进行WEB负载测试
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/13857386.html
Copyright © 2011-2022 走看看