组合总和——力扣39

文章目录

题目描述



回溯

cpp 复制代码
class Solution {
public:
    vector<vector<int>> res;
	vector<int> seq; 
	
	void dfs(vector<int>& nums, int pos, int target){
		if(target==0){
			res.emplace_back(seq);
			return;
		}
		if(pos==nums.size()){
			return;
		}
		//直接跳过
		dfs(nums, pos+1, target);
		if(target - nums[pos]>=0){
			seq.push_back(nums[pos]);
			dfs(nums, pos, target-nums[pos]);
			seq.pop_back();
		}
	}
	
	vector<vector<int>> combinationSum(vector<int>& candidates, int target){
		dfs(candidates, 0, target);
		return res;
	}
};
相关推荐
十五年专注C++开发19 小时前
C++ 序列化 Protocol Buffers:高效数据交换
开发语言·c++·序列化·反序列化·protobuf
weixin_4684668519 小时前
最短路径与最小生成树算法区分实战指南
网络·算法·最小生成树·prim·并查集·最短路径·dijk
CQU_JIAKE19 小时前
5.28【A】
算法
神仙别闹19 小时前
基于QT(C++)+SQL Server 2008 实现相机租赁系统
开发语言·c++·数码相机
Stzzfntty19 小时前
嵌软c八股刷题记录
c语言·开发语言·算法
xier_ran19 小时前
【C++】堆(Heap)与栈(Stack)内存详解
java·开发语言·c++
墨白曦煜19 小时前
算法实战笔记:数组操作的底层逻辑与五大解题范式(一)
笔记·算法
枕星而眠19 小时前
数据结构八大排序详解(二):四大高阶排序(归并/快排/堆/基数)
数据结构
t-think19 小时前
冒泡排序和qsort模拟实现
c语言·算法
LuminousCPP19 小时前
C 语言通讯录补坑篇:终版遗留 Bug 修复,解决修改姓名输入错乱问题
c语言·开发语言·数据结构·经验分享·笔记·顺序表