首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使得它们
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使得它们
admin
2014-04-17
84
问题
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使得它们的和正好是输入的那个整数数字。如果有多对数字的和等于输入的整数数字,输出任意一对即可。要求:
给出算法的基本设计思想。
选项
答案
基本设计思想:如果不考虑时间复杂度,最简单的想法是先在数组中固定一个数字,再依次判断数组中剩下的n—1个数字与它的和是不是等于输入的数字。可惜这种思路需要的时间复杂度是O(n
2
),不满足题意要求。 假设现在随便在数组中找到两个数,如果它们的和等于输入的数字,则找到了要找的两个数字;如果小于输入的数字呢,则希望两个数字的和再大一点。当两个数字的和大于输入的数字的时候,把较大的数字往前移动,因为排在数组前面的数字要小一些,它们的和就有可能等于输入的数字了。 把前面的思路整理一下:找到数组的第一个数字和最后一个数字。当两个数字的和大于输入的数字时,把较大的数字往前移动;当两个数字的和小于数字时,把较小的数字往后移动;当相等时,正合题意。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/4Yxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
新经济政策的实施表明苏俄()①放弃了由战时共产主义政策过渡到社会主义的设想②发展了马克思主义理论③适时调整生产关系以适应生产力发展④利用市场和商品货币关系发展经济
为了加强对地方的控制,唐太宗根据山川形势,把全国划分成10个(),经常派官员监察地方官吏。
下列不属于维也纳会议召开的目的的是()。
从鸦片战争的过程和结局可以看出,()是决定战争胜败的关键。
()后,辽东局势起了根本变化,明朝在军事上失去主动进攻的力量,而后金则由防御转入进攻。
下列关于唐代三省六部制的说法错误的一项是()。
关于“尊王攘夷”运动,不正确的说法是()。
重庆谈判的焦点问题是()
1901—1939年间美国历届政府在国内经济活动中职能作用的演变。
根据地理大发现、文艺复兴和宗教改革等重大事件,阐述西欧地区在15—16世纪发生的历史性转变。
随机试题
汽车营销控制的主要内容有战略控制、年度计划控制和_______。
哪种治疗白血病的药物不作用于S期()(1992年)
A.生长激素B.胰岛素C.甲状腺激素D.降钙素E.皮质醇成年人()分泌过多会导致肢端肥大症
对轻度氮质血症的慢性肾炎病人的护理措施不当的是
商品房预售合同转让的一般流程是()。
若承包商未能在要求的21天内进行竣工试验,而雇主人员着手自行实施试验,那么()。
某政府单位实行国库集中收付制度,2019年1月1日根据经过批准的部门预算和用款计划,向财政部门申请财政授权支付用款额度100万元,2019年3月6日,财政部门经过审核后,采用财政授权支付方式下达了100万元用款额度。2019年3月10日,收到代理银行盖章的
目前,因特网使用的IP协议的版本号通常为
Youmaysaythatthebusinessofmarkingbooksisgoingtoslowdownyourreading.Itprobablywill.That’soneofthe【C1】______
1911年,中国爆发了历史上的第一次资产阶级革命——辛亥革命(theRevolutionof1911),它推翻了中国封建社会的最后一个朝代——清朝,废除了中国延续了2000多年的封建帝制,建立了中国的第一个民主共和国——中华民国。民国政府成立以后,
最新回复
(
0
)