77. Combinations
来源:互联网 发布:电脑监控软件价格 编辑:程序博客网 时间:2024/06/04 23:18
题目
Given two integers n and k, return all possible combinations of k numbers out of 1 … n.
For example,
If n = 4 and k = 2, a solution is:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
思路
本题是一个典型的组合问题,第一种思路是递归的思想,代码如下:
class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int>> res; vector<int> tmp; helper(n, k, 1, tmp, res); return res; } void helper(int n, int k, int level, vector<int>& tmp, vector<vector<int>>& res) { if (tmp.size() == k) res.push_back(tmp); for (int i = level; i <= n; ++i) { tmp.push_back(i); helper(n, k, i + 1, tmp, res); tmp.pop_back(); } }};
第二种是官方的解法,很巧妙,如下:
class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int>> res; vector<int> tmp(k, 0); int i = 0; while (i >= 0) { ++tmp[i]; if (tmp[i] > n) --i; else if (i == k - 1) res.push_back(tmp); else { ++i; tmp[i] = tmp[i - 1]; } } return res; }};
阅读全文
0 0
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- 77. Combinations
- [日推荐]『绿豆旅行记账』能帮你省钱的旅行小工具
- 第5章 语句
- dubbo-monitor安装、 监控中心 配置过程
- 读书笔记---浪潮之巅
- win编程笔记---文件之类
- 77. Combinations
- openels20 三角形
- 抓取新华网所有旅游相关的标题和地址
- ConcurrentHashMap 总结( 中 )
- 2017/0910 实验结果记录
- 灰度图像形态学膨胀与腐蚀
- jquery 函数返回参数
- HDFS1.0 与HDFS2.x 架构理解
- Linux文件保护