【leetcode】77.组合

文章目录

    • 题目
    • 题解
      • [1. 回溯](#1. 回溯)
      • [2. 剪枝优化](#2. 剪枝优化)

题目

77.组合

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

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

示例 1:

输入:n = 4, k = 2

输出:

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

示例 2:

输入:n = 1, k = 1

输出:[[1]]

题解

1. 回溯

python 复制代码
class Solution(object):
    def combine(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[List[int]]
        """
        result = []
        path = []
        start = 1
        def backtracking(n, k, path, start, result):
            if len(path) == k:
                result.append(path[:])
                return 
            
            for i in range(start, n + 1):
                path.append(i)
                backtracking(n, k, path, i + 1, result)
                path.pop()


        if n == 1:
            return [[1]]
        backtracking(n, k, path, start, result)
        return result
        

2. 剪枝优化

python 复制代码
n + 1 - (k - len(path)) + 1
python 复制代码
class Solution(object):
    def combine(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[List[int]]
        """
        result = []
        path = []
        start = 1
        def backtracking(n, k, path, start, result):
            if len(path) == k:
                result.append(path[:])
                return 
            
            for i in range(start, n + 1 - (k - len(path)) + 1):
                path.append(i)
                backtracking(n, k, path, i + 1, result)
                path.pop()


        if n == 1:
            return [[1]]
        backtracking(n, k, path, start, result)
        return result
        
相关推荐
NAGNIP3 小时前
深入 vLLM:高性能大模型推理框架解析
算法
JuneXcy3 小时前
字符串(2)
算法
快去睡觉~3 小时前
力扣152:乘积最大子数组
算法·leetcode·职场和发展
程序员Xu3 小时前
【LeetCode热题100道笔记】二叉树的中序遍历
笔记·算法·leetcode
地平线开发者4 小时前
理想汽车智驾方案介绍 4 | World model + 强化学习重建自动驾驶交互环境
算法·自动驾驶
保卫大狮兄4 小时前
连锁零售企业如何能更有效地管理门店考勤?
面试·职场和发展
石氏是时试4 小时前
拉格朗日多项式
人工智能·算法·机器学习
二哈不在线4 小时前
代码随想录二刷之“贪心算法”~GO
算法·贪心算法·golang
快去睡觉~4 小时前
力扣416:分割等和子集
数据结构·c++·算法·leetcode·职场和发展·动态规划