/*摘自书本,这种算法很绕!*/
#include <iostream> using namespace std; int a[]={1,2,3,5}; int n=sizeof(a)/sizeof(int),k=12; bool dfs(int i,int sum) { if(i==n) return sum==k; if(dfs(i+1,sum)) return true; if(dfs(i+1,sum+a[i])) return true; return false; } int main() { if(dfs(0,0)) cout<<"yes"; else cout<<"no"; return 0; }
本文介绍了使用递归回溯算法解决特定数组中寻找子集之和等于给定目标值的问题。通过深度优先搜索策略,逐个尝试数组元素加入到当前子集中,直至找到满足条件的子集或遍历完整个数组。重点解释了算法实现过程,并通过实例演示其应用。
1393

被折叠的 条评论
为什么被折叠?



