力扣:77. 组合(Python3)

题目:

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

输入:n = 4, k = 2
输出:[[2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]


示例 2:

输入:n = 1, k = 1
输出:[[1]]

解法:

使用itertools库的combinations函数。

知识点:

1.combinations(iterable, r):创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序。例如:combinations('abc',2),返回ab、ac、bc。

代码:

from itertools import combinations


class Solution:
    def combine(self, n: int, k: int) -> List[List[int]]:
        return list(map(list, combinations([num for num in range(1, n + 1)], k)))

你可能感兴趣的:(LeetCode,leetcode,python,算法)