DFS-intcode求组合
来源:互联网 发布:编写高性能的JS 编辑:程序博客网 时间:2024/06/15 15:32
典型的DFS求所有满足条件的解。分析样例,从[1,2,3,4]中选2个数组合,[2,4],[4,2]是相同的,我们手算的过程应该是拿出1与后面[2,3,4]依次组合,2与[3,4]依次组合,3与4组合,4后面没有数了,结束。可以立刻画出搜索过程的示意图:
利用start变量,每一层[start,n]遍历,很容易实现手算的过程
转化为DFS的代码:
class Solution {public: /* * @param n: Given the range of numbers * @param k: Given the numbers of combinations * @return: All the combinations of k numbers out of 1..n */ vector<vector<int>> combine(int n, int k) { // write your code here vector<vector<int>> res; vector<int> tmp; getResult(res,n,k,1,tmp); return res; } void getResult(vector<vector<int>>& res,int n,int k,int start,vector<int> tmp){ if(tmp.size()==k){ res.push_back(tmp); return; } //从当前层数开始 for(int i=start;i<=n;++i){ tmp.push_back(i); getResult(res,n,k,i+1,tmp); tmp.pop_back(); } }};
关于结果顺序的一个细节问题:按照程序的搜索过程,先用1与后面的组合,结果应该是[1,2],[1,3],[1,4]....与题目中样例的顺序不同,实际上这里不要求结果按照样例的顺序,后面许多题目,如括号匹配等等都是这样
阅读全文
0 0
- DFS-intcode求组合
- DFS求组合的问题~
- hdu 1799 DFS求组合数
- nyoj+求所有组合数,dfs,递归需要好好理解
- intcode统计数字 java
- DFS暴力求某集合上的某种的组合情况
- UVA 11181(C) ——Probability|Given (条件概率, dfs求组合)
- 放苹果(组合+DFS)
- NYOJ32 组合数 【DFS】
- ZOJ 1089--DFS--组合
- 组合数(dfs)
- 32 组合数【dfs】
- nyoj32 组合数【DFS】
- DFS经典组合问题
- 组合数(DFS)
- 组合数 dfs
- 组合数(dfs)
- DFS解决组合题目
- 项目常用功能模块(1)-ztree查找节点
- Spring MVC
- AngularJS中ng-app、ng-model、ng-bind、ng-init、ng-repeat、自定义指令
- uboot下载
- IO处理流
- DFS-intcode求组合
- Arduino基础入门一:认识Arduino
- 字体动画HTextView
- 修改Launcher3代码--在加载Launcher时默认加载某个widget
- 代理模式
- 图片资源跨域apache设置
- postgresql入门教程推荐
- sql的执行顺序问题
- OrderedDict 有序字典以及读取json串时如何保持原有顺序