LeetCode || Combinations
来源:互联网 发布:java同步互斥锁notify 编辑:程序博客网 时间:2024/06/11 17:53
Combinations
Total Accepted: 51116 Total Submissions: 164526My SubmissionsGiven 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],]
主要思路:
模拟加法器。
算法时间: 8ms。
class Solution {public: vector<vector<int>> combine(int n, int k) { vector<int> v; vector<vector<int>> vc; if(k > n || k < 1) return vc; for(int i = 1;i<=k;i++) { v.push_back(i); } vc.push_back(v); while(1) { if(v[k-1]+1 > n)//需要考虑进位的情况 { int tmpi = 2;//表示数组v中倒数第tmpi位 while(k-tmpi >=0)//从后往前寻找一个最合适的位置进行加1 { if(v[k-tmpi] < n - tmpi + 1) //如果当前位置合适的话 //将[1, 4]变为[2, 3]的过程 { v[k - tmpi] += 1; int t1= v[k-tmpi] + 1; for(int i = k - tmpi+1;i<k;i++) { v[i] = t1; t1++; } vc.push_back(v); break; } else //如果当前位置不合适,则需要继续往前数 tmpi++; } if(k < tmpi)//当进行到最前面那位都无法进行加法,则表示所有结果都已经被找到,停止搜索 break; } else //如果最后一位持续符合要求 { v[k-1] += 1; vc.push_back(v); } } return vc; }};
0 0
- LeetCode: Combinations
- LeetCode: Combinations
- LeetCode Combinations
- [Leetcode] Combinations
- [LeetCode] Combinations
- Leetcode: Combinations
- LeetCode Combinations
- [Leetcode] Combinations
- [Leetcode] Combinations
- [leetcode] Combinations
- [LeetCode]Combinations
- [leetcode]Combinations
- LeetCode-Combinations
- [leetcode] Combinations
- LeetCode - Combinations
- 【Leetcode】Combinations
- Leetcode: Combinations
- 【leetcode】Combinations
- TQ2440 学习笔记—— 24、IIC 接口
- Python xml.etree.ElementTree 用法
- c++必须在类初始化列表中初始化的几种情况
- UIView
- EditPlus添加asm配置
- LeetCode || Combinations
- UILabe的特殊格式
- Android Studio格式化代码设置和代码风格设置、代码提示键
- C++ Primer : 第十三章 : 拷贝控制示例
- UIButtont特殊样式
- 使用ULTRA LIBRARIAN自动生成SCHLIB和PCBLIB
- 标签栏用库函数
- 欢迎使用CSDN-markdown编辑器
- 拼音翻译成阿拉伯数字_华为SO挑战赛2015年8月