微软等数据结构+算法面试100题014

原创 2011年01月22日 19:17:00

/*

*

*  题目:输入一个已经按升序排序过的数组和一个数字,

*  在数组中查找两个数,使得它们的和正好是输入的那个数字。

*  要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。

*  例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。

 

*  思路:类似快排的partion 部分 从两边开始向中间找

   比如有如下数组输入数组1、2、4、7、11、16和数字15

   选定1  从右边开始找 选定16 1+16>15 

                       选定11 1+11<15 这时候应该放弃1 因为 1 已经不可能存在解了。

   选定11 从左边开始找 选定2  2+11<15

  选定4  4+11=15 得解

 

直到两边一直找到中间。无有效解则显示失败

*/

 

#include <iostream>

 

 

int main()

{

int data[]={1,2,4,7,11,15};

int flag = 0, start = 0, end = 5, key;

int sum =15;

while ( start < end  && !flag){

key = data[start];

while( start < end && !flag && key + data[end] >= sum ){

if ( key + data[end] == sum) {

flag = 1 ;

}

else

end--;

}

if (!flag) {

start++;

key = data[end];

while ( start < end && !flag && key + data[start] <= sum ){

if ( key + data[start] == sum) {

flag = 1 ;

}

else

start++;

}

if (!flag) {

end--;

}

}

}

if( flag)

std::cout<<"data["<<start<<"]="<<data[start]<<" data["<<end<<"]="<<data[end]<<std::endl;

return 0;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Docker+OpenvSwitch走进VxLAN的世界

docker是非常火的容器技术,虚拟网络、SDN等网络也在不断的发展,VxLAN是新型的虚拟扩展网络,作者在整理文档时候发现网上实验:使用OpenvSwith 在Docker上搭建VxLAN环境,拿来...

60秒内检查Linux服务器性能,你能做到吗?

导读 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进...

puma shoes 当天上午

据新华社电 阿根廷一名退役老兵16日在阿中部科尔多瓦省的一家航空俱乐部成功跳伞,庆祝自己90岁生日。  老人名叫贝尔特兰。当天上午,他在科尔多瓦省首府科尔多瓦市奥尔梅多上校航空俱乐部,从3000英尺高...

Docker+OpenvSwitch走进VxLAN的世界

docker是非常火的容器技术,虚拟网络、SDN等网络也在不断的发展,VxLAN是新型的虚拟扩展网络,作者在整理文档时候发现网上实验:使用OpenvSwith 在Docker上搭建VxLAN环境,拿来...

数据结构研习之搜索篇

Binary Search递归的实现方法相对容易理解一些。其主要思想是先将列表中个元素进行排序,然后在排序后的列表中将要查询的条目于列表中值做比         较,然后根据比较的结果对原列表做二分,...

掌握shell应用,Linux 任你行走!

要是完全在 Linux 终端中生存并不容易,但这绝对是可行的,下面来分享下我是怎么完成的。你是否曾想像过完完全全在 Linux 终端里生存?没有图形桌面,没有现代的 GUI 软件,只有文本 —— 在 ...

基于OVS+VXLAN实现Docker容器跨主机通讯

介绍基于OVS+VXLAN实现Docker容器跨主机通讯

如何在VC6 MFC中使用GDI+

GDI+可应用于二维向量图象,栅格图象及排版,是为C/C++程序员而设计的表现为C++类而存在的接口,能用于一切基于Windows的应用中。作为GDI的后继者,GDI+在GDI中增加了新功能,如文本的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)