Leetcode基础刷题之PHP解析(77. Combinations)

栏目: PHP · 发布时间: 6年前

2 0 1 9 -6-12   期三  

Leetcode基础刷题之 PHP 解析(47. Permutations II)

Leetcode基础刷题之PHP解析(77. Combinations)

给定两个整型数字n和k,返回1到n的k个数所有组合情况。

还是和之前的题目一样,定义了两个数组,一个存储单次的组合,一个存储最后的所有组合,那么每次当前组合中的个数等于k的时候,就把当前小组合push到大组合中,否则的话继续递归。

/**
     * @param Integer $n
     * @param Integer $k
     * @return Integer[][]
     */
    function combine($n, $k) {
        $res=[];
        $out=[];
        $this->helper($n,$k,1,$out,$res);
        return $res;
    }
    
    function helper($n,$k,$level,&$out,&$res){
       
        if(count($out)==$k){
            array_push($res,$out);
            return ;
        }
        for($i=$level;$i<=$n;$i++){
            array_push($out,$i);
            $this->helper($n,$k,$i+1,$out,$res);
            array_pop($out);
        }
    }

Github整理地址 : https://github.com/wuqinqiang/leetcode-php


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

现代编译原理

现代编译原理

Andrew W.Appel、Maia Ginsburg / 人民邮电 / 2005-9 / 59.00元

《现代编译原理:C语言描述(英文版)(本科)》全面讲述了现代编译器的各个组成部分,包括:词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。与大多数编译原理的教材不同,《现代编译原理:C语言描述(英文版)(本科)》采用了函数语言和面向对象语言来描述代码生成和寄存器分配,对于编译器中各个模块之间的接口都给出了实际的 C 语言头文件。 全书分成两部分......一起来看看 《现代编译原理》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码