博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Combination Sum
阅读量:6279 次
发布时间:2019-06-22

本文共 2403 字,大约阅读时间需要 8 分钟。

Note:

  • All numbers (including target) will be positive integers.
  • Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).
  • The solution set must not contain duplicate combinations.

 

For example, given candidate set 2,3,6,7 and target 7

A solution set is: 
[7] 
[2, 2, 3] 

 

思路,对于2,从2开始,对于3,从3开始,保证不会出现322,只会出现223, 其实还是回溯法,或者说dfs,如下图所示

 

code1:在红字出剪纸,

class Solution{    vector
> m_result; public: void dfs(const vector
&candidates, int target, vector
& array, int start) { if(target < 0) return; if(target == 0) { m_result.push_back(array); return; } for(size_t i = start; i < candidates.size(); i++) { array.push_back(candidates[i]); dfs(candidates, target - candidates[i], array, i); array.pop_back(); } } vector
> combinationSum(vector
&candidates, int target) { vector
array; sort(candidates.begin(), candidates.end()); vector
::iterator pos = unique(candidates.begin(), candidates.end()); candidates.erase(pos, candidates.end()); dfs( candidates, target, array, 0); return m_result; } };

code2:在红字出剪纸。

class Solution{    vector
> m_result; public: void dfs(const vector
&candidates, int target, vector
& array, int start) { if(target == 0) { m_result.push_back(array); return; } for(size_t i = start; i < candidates.size(); i++) { if(target < candidates[i]) return; array.push_back(candidates[i]); dfs(candidates, target - candidates[i], array, i); array.pop_back(); } } vector
> combinationSum(vector
&candidates, int target) { vector
array; sort(candidates.begin(), candidates.end()); vector
::iterator pos = unique(candidates.begin(), candidates.end()); candidates.erase(pos, candidates.end()); dfs( candidates, target, array, 0); return m_result; } };

 

转载地址:http://qwfva.baihongyu.com/

你可能感兴趣的文章
Python isalnum() 方法
查看>>
Nginx负载均衡器处理Session共享的几种方法(转)
查看>>
转 MySQL问题排查工具介绍
查看>>
Linux、apache 无法使用PHP创建目录和文件
查看>>
hi模板文件报乱码问题
查看>>
Java 远程通讯技术及原理分析
查看>>
ORM框架之------Dapper,Net下无敌的ORM
查看>>
R语言绘图时的边界碰撞问题
查看>>
深度可分离卷积结构(depthwise separable convolution)计算复杂度分析
查看>>
IntelliJ IDEA 常用设置讲解
查看>>
软件的描述x
查看>>
深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然...
查看>>
spring boot微服务改造冲突
查看>>
OAuth2 Demo PHP
查看>>
真机测试出现INSTALL_FAILED_USER_RESTRICTED安装错误
查看>>
Mybateis mapper 接口 example 用法
查看>>
js图片转base64并压缩
查看>>
关于server和虚拟主机的差别
查看>>
散列表(二)冲突处理的方法之链地址法的实现: 哈希查找
查看>>
【ztree】zTree节点增删改
查看>>