LeetCode 40. Combination Sum II
2016-04-12 15:16
423 查看
深度搜索,路径记录
class Solution { public: vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { sort(candidates.begin(),candidates.end()); copy(candidates.begin(),candidates.end(),back_inserter(nums)); this->target = target; vector<int> vec; use.resize(candidates.size()); dfs(-1,0,vec); return ret; } private: vector<int> use; vector<int> nums; vector<vector<int>> ret; int target; void dfs(int last,int sum,vector<int>& vec) { for(int i = last+1;i<nums.size();i++) { if(use[i] == 0) { if((sum+nums[i]) == target){ vec.push_back(nums[i]); if(find(ret.begin(),ret.end(),vec) == ret.end()) ret.push_back(vec); vec.pop_back(); } else if((sum+nums[i]) > target) return ; else { use[i] = 1; vec.push_back(nums[i]); dfs(i,sum+nums[i],vec); vec.pop_back(); use[i] = 0; } } } } };
相关文章推荐
- 字符串匹配
- Android 最火的快速开发框架androidannotations配置详解
- 单片机基本知识再学习
- 问题error: no such file or directory:xxx的处理方法
- APP系统报错日志反馈机制设计
- 对于微信内置浏览器中不能小窗播放视频原因的分析以及解决
- SQL Server 高性能写入的一些总结
- Javascript的作用域、作用域链以及闭包
- 从此与mathtype和office拜拜!!
- 折半法查找数组中指定数字的位置并返回
- 个人笔记:Imageload 不同位置下的图片加载路径方式
- ubuntu 14.04 Ext4 rm -rf 文件恢复
- JAVA克隆详解以及clone方法使用
- Servlet过滤器介绍
- React Native之创建iOS视图
- BP(Back Propagation)
- 扩展python
- Android文件管理
- 在MyEclipse、Eclipse中更改Ctrl+Shift+f格式化代码格式
- linux iconv字符编码批处理方式转换