常见编程题——数组中和为某一个值
来源:互联网 发布:php yaf导出excel表格 编辑:程序博客网 时间:2024/06/17 14:32
题目描述:给定一个有n个数字的数组,给出一个数字m,要求所有和等于m的组合。
思路:从头遍历,查找当前这个数在路径中时能不能和后面的数构成和,如果可以就输出这个路径,如果加上这个数比和sum大,说明不能有当前这个数,如果现在的和比sum小,就放入路径,继续查找。
在VS2010中的程序如下:
#include<iostream>#include<vector>#include <algorithm>using namespace std;void findpath(vector<int> a,vector<int> path,int n,int start,int sum){for(int i=start;i<n;i++){//从第一个数开始遍历sum-=a[i];path.push_back(i);if(sum==0){//说明找到了满足要求的一条路径for(int j=0;j<path.size();j++){cout<<a[path[j]]<<" ";}cout<<endl;path.clear();}else if(sum>0){//目前的和小于要求的和,要继续往后找findpath(a,path,n,i+1,sum);}sum+=a[i];//如果和大于了sum,说明当前这个数不能加入路径里if(path.size()>0)path.pop_back();}}int main(){int n;cin>>n;int temp;vector<int> data;for(int i=0;i<n;i++){cin>>temp;data.push_back(temp);}int sum;cin>>sum;vector<int> allpath;findpath(data,allpath,n,0,sum);cin.get();cin.get();return 0;}
阅读全文
0 0
- 常见编程题——数组中和为某一个值
- 查找二叉树中和为某一个值的路径
- 二叉树中和为某一个值的路径
- 剑指offer面试题25二叉树中和为某一个固定值的路径
- 面试题25:二叉树中和为某一个值的路径
- 面试题25:二叉树中和为某一个定值的路径
- 剑指Offer(第二版)面试题34:二叉树中和为某一个值的路径
- [算法]找数组中和为定值的数组对
- 自己编写的一个小程序——求一个数组中和为定值的组合
- 剑—二叉树中和为某一值的路径
- 第八题 数组中和为定值的2个数或者多个数
- [程序员面试题精选100题]10.排序数组中和为给定值的两个数字
- 【算法题】找到数组中和为固定值的两个元素
- 剑指Offer——查找递增数组中和为S的两个数
- 排序数组中和为给定值的两个数字
- 排序数组中和为给定值的两个数字
- 找出数组中和为给定值的两个数
- 找出升序数组中和为给定值的两个数字
- Jackson实现的json操作工具类
- 如何解决listview item事件冲突
- [Node]Hexo(next主题)+Coding搭建个人博客
- C#计算一段程序运行时间的三种方法
- Cacti监控平台部署
- 常见编程题——数组中和为某一个值
- 动态规划(0-1背包问题)
- UART总结
- 文字相似度算法
- Method之invoke()方法的使用
- vue-router路由(一)
- 5 个 Laravel Eloquent 小技巧
- 素数判断及矩形交集的实现
- linux驱动 之 module_init解析 (上)