Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 1.74 KB

78.md

File metadata and controls

53 lines (42 loc) · 1.74 KB

✏️基础刷题之(78. Subsets)


. 2019-06-13 吴亲库里 库里的深夜食堂

✏️描述

给定一个不重复的数组,返回它所有的子集,并且不能重复,这两周选择递归的标签其实刷的都是关于回溯法思想,只是实现方式用的是递归。


✏️题目实例


✏️题目分析

这些题目解释起来的原理都是回溯的解题思路,今天换个方式,画了个运行流程。一层一层的往下找,直到结束,退回一层,继续找,最终的顺序就是图上花的[][1][1,2][1,2,3][2,3]......好吧这图我都看不下去了,将就点,看代码。

✏️最终实现代码

   /**
        * @param Integer[] $nums
        * @return Integer[][]
        */
       function subsets($nums) {
           $out=[];
           $res=[];
           $this->helper($nums,0,$out,$res);
           return $res;
       }
       
       function helper($nums,$index,&$out,&$res){
              array_push($res,$out);
           for($i=$index;$i<count($nums);$i++){
               array_push($out,$nums[$i]);
               $this->helper($nums,$i+1,$out,$res);
               array_pop($out);
           }
       }

联系