组合数

作者: 拔丝圣代 | 来源:发表于2017-12-15 00:07 被阅读0次

概述


给出n和k,求 C(n, k)对应的所有组合
例如:n=4, k=2
返回:[[2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]

原题


Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.

For example,
If n = 4 and k = 2, a solution is:

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

思路


combine(n, k) 所有可能的组合分两部分,包含n和不包含n。其中:

  • 不包含n的结果与combine(n-1, k) 相同
  • 包含n的结果相当于把combine(n-1, k-1)的每一种组合中再加一个n

例如
求combine(4, 2)

  • 包含n:combine(3, 1)结果为[[1], [2], [3]],每个结果加上4,得到[[1, 4], [2, 4], [3, 4]]
  • 不包含n:combine(3, 2)结果为[[1, 2], [1, 3], [2, 3]]

合并,得到combine(4, 2)的结果[[2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]

代码


class Solution(object):
    def combine(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[List[int]]
        """
        if n == k:
            return [list(range(1, n+1))]
        if k == 0:
            return []
        if k == 1:
            return [[i] for i in range(1, n+1)]
        part1 = self.combine(n-1, k-1)
        part2 = self.combine(n-1, k)
        part1 = [i + [n] for i in part1]
        return part1 + part2

相关文章

  • Oracle 集合处理sql

    /根据一组坐标+半径+生成的坐标精度生成一组圆形集合数据/SELECT SDO_UTIL.CIRCLE_POLYG...

  • python_列表

    python 列表:list 列表:可以存储一组数据的类型;组合数据类型 创建列表 name=list() ...

  • GEOquery 下载 GEO 数据

    前言 NCBI Gene Expression Omnibus(基因表达综合数据库,GEO)公开了很多高通量基因组...

  • Python学习笔记(六)

    第六章 组合数据类型 组合数据类型概述 计算机不仅对单个变量表示的数据进行处理,更多情况,计算机需要对一组数据进行...

  • 生成排列、组合数

    排列组合数 组合数 生成组合数举例:比如有一个数组int arr[3] = {1,4,8},生成组合数就是要生成{...

  • 合数

    合数:相对于质数存在。由两个或两个以上的质数相乘而成的数 练习题:一、知识点:各位数字之和为3的倍数,就一定能被3...

  • 2018-07-16

    python组合数据类型列表,元组,集合,字典一,列表 1.含义、list:用中括号[ ],一组可以重复出现,有顺...

  • 对象Object(笔记)

    对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。 键名 又称为“属性”(prope...

  • 第三章 Perl语言(四)-哈希、强制转换

    哈希 哈希是一个聚合数据结构,初衷是为了实现将一组数据对应到另外一组数据。哈希对数据的格式有点小小的要求:键必须是...

  • 2018-08-27javascript(5)基本数据那类型之对

    1.定义 .对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。 .键名 对象的所有键名...

网友评论

      本文标题:组合数

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