《leetCode-php》求n个连续数中m个数的组合

给出两个整数n和k,返回从1到n中取k个数字的所有可能的组合 

例如: 

如果n=4,k=2,结果为 

[↵  [2,4],↵  [3,4],↵  [2,3],↵  [1,2],↵  [1,3],↵  [1,4],↵]

思路:当前数作为其中一个,剩下的就从后面来获取

<?php
function combine($start, $end , $num) {
    $arrRet = array();
    if ($num == 1) {
        for ($i = $start; $i <= $end; $i ++) {
            $arrRet[] = [$i];
        }
        return $arrRet;
    }
    for ($i = $start; $i <= $end - $num + 1; $i ++) {
        $ret = combine($i + 1, $end, $num - 1);
        foreach ($ret as $item) {
            $item[] = $i;
            $arrRet[] = $item;
        }
    }

    return $arrRet;
}
$ret = combine(1,4,2);
print_r($ret);
发布了284 篇原创文章 · 获赞 32 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/less_cold/article/details/102531071