leetcode_77. 组合
【摘要】 目录
一、题目内容
二、解题思路
三、代码
一、题目内容
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], &...
目录
一、题目内容
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
二、解题思路
1.每次添加一个元素,直到添加到两个元素为止。
2.添加一个元素之后,则只需要考虑下一个即可,循环开始位置为已经添加元素的索引的下一个。
三、代码
-
class Solution:
-
def combine(self, n: int, k: int):
-
ret = []
-
-
def dfs(res, cur):
-
if len(res) == k:
-
return ret.append(res)
-
for i in range(cur, n):
-
dfs(res + [i + 1], i + 1)
-
dfs([], 0)
-
return ret
-
-
-
if __name__ == '__main__':
-
n = 4
-
k = 2
-
s = Solution()
-
ans = s.combine(n, k)
-
print(ans)
文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。
原文链接:nickhuang1996.blog.csdn.net/article/details/108462009
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)