好贷网好贷款

输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字

发布时间:2016-12-5 16:35:36 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字",主要涉及到输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字方面的内容,对于输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字感兴趣的同学可以参考一下。

题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 #include<iostream> using namespace std; void test(int* data,int& first,int& last,int targetNum) { if(first>=last) { cout<<"NO NUM"<<endl; return; } if((data[first]+data[last])==targetNum) { cout<<data[first]<<" "<<data[last]<<endl; return; } else if((data[first]+data[last])<targetNum) { first++; } else last--; test(data,first,last,targetNum); } void main() { int data[]={1,2,4,7,11,15}; int targetNum=15; int length=sizeof(data)/sizeof(int); int firstIndex=0,lastIndex=length-1; test(data,firstIndex,lastIndex,targetNum); }

上一篇:Android 模拟系统事件(三)
下一篇:Android_应用程序资源的编译和打包过程分析

相关文章

相关评论