试题:找出数组中元素和为指定值的所有组合
来源:互联网 发布:组织机构图制作软件 编辑:程序博客网 时间:2024/05/20 19:15
本问题来自论坛, 题意大概如下:
指定一个数组, 和一个数值, 找出数组中元素和为这个指定数值的所有组合
如指定数组元素为[1, 2, 3], 而指定数值为6, 则满足要求的组合为:{1, 2}, {3}
#include <iostream>using namespace std;void solve(int n, int data[], int start, int end, int used[], int index, int size, bool change){ if (0 == n && change) { for (int i = 0; i <= index; ++i) { cout << used[i] << " "; } cout << endl; } // cause zero may in the data array, we cannot jump out now if (start < end && index < size - 1) {if (n >= data[start]) {++index;used[index] = data[start];solve(n - data[start], data, start + 1, end, used, index, size, true);--index;}solve(n, data, start + 1, end, used, index, size, false); }}void solve(int n, int data[], int used[], int size){ solve(n, data, 0, size, used, -1, size, false);}int main(){{cout << "------ block 1 ------" << endl;int n = 15;int data[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int used[10]= {0};solve(n, data, used, 10);}{cout << "------ block 2 ------" << endl;int n = 15;int data[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};int used[10]= {0};solve(n, data, used, 10);} return 0;}
- 试题:找出数组中元素和为指定值的所有组合
- 在给定的数组中找出两个元素和为给定值的所有元素对
- 在给定的数组中找出两个元素和为给定值的所有元素对
- 从长度为N的数组中找出所有M个元素组合的优化算法
- 从数组中找出所有组合为s的数
- 面试题:编写函数找到数组中所有和为指定值的整数对
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- 指定整数数组中输出和为一整数的所有组合
- 指定整数数组中输出和为一整数的所有组合
- 面试题——找出数组中不相同的所有元素(是数组,不是集合)
- 求出数组中满足给定和的所有元素组合
- 找出数组中和为N+1的的所有组合
- 排好序的数组中,找出两数之和为m的所有组合
- 【面试题】在二元树中找出和为某一值的所有路径
- [面试题]在二叉树中找出和为某一值的所有路径
- 在一个排序数组里面找出所有和为m的组合
- 找出二维数组中某元素的所有对角元素
- 四个排名函数(row_number、rank、dense_rank和ntile)的比较
- Qt应用程序Cursor样式
- 公用表表达式(CTE)的递归调用
- shell命令简单学习
- php编译安装常见错误
- 试题:找出数组中元素和为指定值的所有组合
- Oracle 10g ORA-07445和ORA-00108
- 在SQL Server2005中按列连接字符串的三种方法
- 致苹果CEO库克的一封公开信——《库克,请换一种专利策略》
- C# 中的委托和事件
- FPGA专区--------------3. 混沌经典仿真+dsp builder设计Logistic映射
- CXF 生成客户端报错
- Spring中常用的hql查询方法 (getHibernateTemplate())
- 郑州大学无线上网 (4.22版锐捷)