[LeetCode]题解(python):077-Combinations
2024-08-29 09:24:22
题目来源:
https://leetcode.com/problems/combinations/
题意分析:
给定一个n和k,输出1到n的所有k个数的组合。比如n = 4,k=2
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
题目思路:
这道题目用递归的思想来做。比如我们把n当成一个数字[1,2,...,n],如果组合包括1那么[2,..,n]和k-1的所有答案添加一个1;如果组合不包括1,那么答案是[2,...,n]和k的组合。然后将两个组合结合起来就可以了。初始化,如果n == k,那么组合就是直接所有的数,如果k == 1,那么组合是每一个数。
代码(Python):
class Solution(object):
def combine(self, n, k):
"""
:type n: int
:type k: int
:rtype: List[List[int]]
"""
def solve(index,n,k):
ans = []
if k == n - index + 1:
t = []
for i in range(k):
t.append(index)
index += 1
ans.append(t)
return ans
if k == 1:
while index <= n:
ans.append([index])
index += 1
return ans
tmp1,tmp2 = solve(index + 1,n,k),solve(index + 1,n,k-1)
for i in tmp1:
ans.append(i)
for i in tmp2:
i = [index] + i
ans.append(i)
return ans
return solve(1,n,k)
转载请注明出处:http://www.cnblogs.com/chruny/p/5088520.html
最新文章
- Mac使用极简教程
- Git 取消跟踪已版本控制的文件
- [Android]官网《Testing Support Library》中文翻译
- C#------各种常见错误解决方法
- 关于checkbox与文字混排无法对齐的解决方法
- VS2010中如何查看DLL的导出接口
- android 添加背景音乐
- Win下循环进入目录启动执行某任务
- Hello World---C/C++
- MongoVUE简单操作手册
- sql优化-总结
- 浅谈Django的Q查询以及AngularJS的Datatables分页插件
- asp.net 验证码技术
- phpcms基础
- 从小故事来谈nginx负载均衡
- 怎么动态生成js变量
- HttpClient学习--HttpClient的POST请求过程源码解读
- php 文件上传 $_FILES 错误码
- Fix problems that block programs from being installed or removed
- POJ 2752 Seek the Name, Seek the Fame(KMP中next的理解)题解
热门文章
- Review1-11
- android 屏幕适配问题【转】
- 我的小前端 (2)—— JQ和zepto
- WPF属性与特性的映射(TypeConverter)
- MySQL5.7.11(ZIP)安装
- 一周学会Mootools 1.4中文教程:(1)Dom选择器
- 在python文本编辑器里如何设置Tab为4个空格
- <;!DOCTYPE html PUBLIC ";-//W3C//DTD XHTML 1.0 Frameset//EN"; ";http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd";>;的含义
- docker10件事
- LintCode-数组划分