算法讨论(七)--已排序数组中寻找两个数,其和等于给定的数
来源:互联网 发布:c语言用什么编译器 编辑:程序博客网 时间:2024/05/21 06:12
题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。
分析:设num1+num2,由于是排好序的数组,将num1为第一个数,num2为最后一个数,如果和大于给定值,就将第一个数与倒数第二个数相加,即num2往前移,若小于则num1往后移。
代码
void f1(int a[], int n,int sum)
{
int i=0,j=n-1;
while (i<j)
{
if (a[i]+a[j]<sum)
i++;
else if(a[i]+a[j]>sum)
j--;
else
{
cout<<a[i]<<"+"<<a[j]<<"="<<sum<<endl;
break;
}
}
}
void main()
{
int a[5]={1,2,4,7,11};
int sum=15;
f1(a,5,sum);
}
- 算法讨论(七)--已排序数组中寻找两个数,其和等于给定的数
- 在排序数组中寻找两个数使其和等于给定数
- 微软,Google面试题 (10) —— 在排序数组中寻找两个数的和等于给定数
- 常见面试算法题:给定数组中寻找加和为特定数的两个数
- 在给定数组中查找两个数的和等于给定的数
- python求解在给定递减数组中寻找两个数和等于定值,乘积最小
- 1.无序数组中找出两个数使其和等于给定值
- 快速寻找数组中的两个数的和等于给定的数字
- 【算法题】数组中找到两个数,使其和等于某个数
- 判断一个有序数组中是否有两个数的和等于给定的数
- 关于一个数组中两个数的和等于给定数的问题
- 在数组中求出两个数,使他们的和等于给定的一个数
- 【100题】第十四题(数组中找两个数使其和等于输入数)
- PHP实现数组中两个数的和等于给定的目标值
- PHP实现数组中两个数的和等于给定的目标值
- 在升序数组中查找和等于给定值的两个数
- 判断数组中是否存在和等于给定值的两个数
- 给定一个数组,求数组中所有元素的可能组合(每个元素只出现一次),使其和等于给定数的解决办法
- oracle .net验证码
- cocoa 设计模式
- background-attachment
- 过滤驱动笔记
- 二进制,八进制,十六进制,十进制间进行相互转换
- 算法讨论(七)--已排序数组中寻找两个数,其和等于给定的数
- 常见RGB颜色表
- tomcat环境中修改了server.xml配置文件后不起作用
- background-position
- 使用Ext.net时如何遍历Panel或者FormPanel中Content标签下的控件,并进行验证
- page.controls[0].controls还是page.controls[1].controls的区别
- 什么是qt,QT Creator, QT SDK, QT Designer
- java io
- Viewport3D对象转换成图片