数组求和相关算法
来源:互联网 发布:冰川网络 300533 股吧 编辑:程序博客网 时间:2024/06/06 02:33
问题1、输入一个数组,在数组中查找两个数,使得它们的和正好是target
void FindTwoSum(int a[],int n,int target){ sort(a,a+n); int sum=0; int i=0; int j=n-1; while(i<j){ sum=a[i]+a[j]; if(sum==target){ cout<<a[i]<<"+"<<a[j]<<"="<<sum<<endl; i++; j--; } else if(sum<target){ i++; } else{ j--; } }}
问题2、输入整数sum,找出所有和为sum的连续整数序列,至少包含两个。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所有结果打印出三个连续的序列.
void Print(int small,int big){ for(int i=small;i<=big;i++){ cout<<i<<","; } cout<<endl;}void FindAllSequenceSum(int sum){ int s=0; int small=1; int big=2; s=small+big; while(small<sum/2){ if(s==sum) Print(small,big); while(s>sum&&small<=sum/2){ s-=small; small++; if(s==sum){ Print(small,big); } } big++; s+=big; }}
问题3、求数组中最长递增子序列
int LongestAdvanceSub(int a[], int n){ int *f = new int[n]; int maxLen=1; for (int i = 0; i<n; i++){ f[i]=1; for (int j = 0; j < i; j++){ if (a[i]>a[j]&&f[j]+1>f[i]) f[i] = f[j]+1; if (maxLen < f[i]){ maxLen = f[i]; } } } return maxLen;}
问题3、数组分割。将元素个数为2n的数组分割为两个个数为n的数组并使得两个子数组的和最接近。
这里写代码片
问题4、数组中三个数字之和最接近target的组合
0 0
- 数组求和相关算法
- 数组求和算法系列
- 数组求和算法系列
- 分治算法题之数组元素求和
- 数组随机求和比较的Java算法
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- 算法学习-连续子数组求和最大值
- 与数组相关算法
- 数组相关算法
- 数组求和
- 数组求和
- 数组求和
- 数组求和
- 数组求和
- 数组求和
- 几个数组相关算法代码
- HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTup
- 二十.创建标签
- Android面试基础知识总结
- 【opencv练习24 - 霍夫圆变换——圆检测】
- 二十一.操作标签
- 数组求和相关算法
- 郑大第九届校赛-正式赛-zzulioj-1815-easy problem
- 二十二.使用GitHub
- Android面试---Java相关
- jquery easyui datagrid分页 详解
- 二十三.自定义Git
- 对恶意APP"Roidsec"的逆向分析
- 二十四.忽略特殊文件
- ORACLE的直方图的