美文网首页
数字的排列

数字的排列

作者: 瞬铭 | 来源:发表于2019-03-27 16:34 被阅读0次

Combination

https://leetcode.com/problems/combinations/
整形n,给定一个k,求n个数字里面k个组合

res记录最终结果,out记录单次结果(res是out的组合),在组合过程中,从1到n遍历数字,每次的结果都保存到out,只要out的长度满足了k,则表明找到了一个结果,回溯到下一个继续迭代。下图比较好的能说明整个迭代的过程

image.png
 /**
     * combine
     * @param $n
     * @param $k
     * @return array
     */
    function combine($n, $k) {
        $out = [];
        $res = [];
        $this->combineHelper($n, $k, 1, $out, $res);
        return $res;
    }


    /**
     * combineHelper
     * @param $n
     * @param $k
     * @param $level
     * @param $out
     * @param $res
     * @return void
     * @brief 这个函数的定义:对于n和k,找到level到n的所有满足条件的组合,并放在res中
     */
    function combineHelper($n, $k, $level, &$out, &$res) {
        if (count($out) == $k) {
            $res[] = $out;
            return;
        }

        for ($i = $level; $i <= $n; $i++) {
            $out[] = $i;
            $this->combineHelper($n, $k, $i+1, $out, $res);
            array_pop($out);
        }
    }

相关文章

  • 数字的排列

    Combination https://leetcode.com/problems/combinations/整形...

  • 排列组合与回溯法

    排列,组合,回溯法 ex.1 ex.2 排列 全排列:从第一个数字起,每个数字分别与它后面的数字交换 去重全排列:...

  • 数感培养(之三)

    数字排列 数字排列顺序也是培养数感的方法之一。给孩子提供教具材料让他们进行排序,当孩子能够将数字或者标有数字的物品...

  • 我的2020

    我的2020 文/所以 喜欢数字排列,尤其喜欢排列整齐有规律的数字组合。然而,2020,这几个数字的组合,无论是从...

  • 排列类算法问题大总结

    全排列 带重复元素的排列 下一个排列 上一个排列 第 k 个排列 排列序号 排列序号II 全排列 给定一个数字列表...

  • Leetcode.46.Permutations

    题目 给定一个没有重复数字的数字序列, 输出这写数字的全排列组合. 思路 这种全排列的问题最直接的思路就是递归. ...

  • 使用JavaScript实现冒泡排序

    完成数字从大到小排列

  • python基础实例教程-九个实例哦

    排列组合 要求:列出所有可能的四位数字组合,它们彼此不同,没有重复的数字。 分析:排列就好了 代码: 阶梯求和 要...

  • 递归处理数字全排列算法

    问题背景### 递归很常用,但确实不好理解,下边这段程序是用来进行数字全排列的由于很多算法需要讲数字全排列后再来暴...

  • 子集、全排列、第k个排列

    子集输出 全排列输出 存在重复数字的全排列 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大...

网友评论

      本文标题:数字的排列

      本文链接:https://www.haomeiwen.com/subject/hazzvqtx.html