【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
        
相关推荐
大熊背28 分钟前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光866131 分钟前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
晚风醉蝶43 分钟前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光1 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
HY小宝F1 小时前
树莓派 FFmpeg 实战笔记(二):命令行、源码编译与硬件编码的真相
学习·职场和发展·ffmpeg
程序员三藏2 小时前
浅谈性能测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
白露与泡影3 小时前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法
happyprince4 小时前
01-整体观-Codex全貌解读(源码)
算法·ai编程
俊基科技5 小时前
别自己写算法了,让这颗37.5毫米的模组替你“闭嘴干活”
神经网络·算法·硬件开发·ai降噪·语音模块·回音消除