首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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
2017-04-28
28
问题
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,我们可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,当输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使得它们的和正好是输入的那个整数数字。如果有多对数字的和等于输入的整数数字,输出任意一对即可。要求:
给出算法的基本设计思想。
选项
答案
基本设计思想:如果我们不考虑时间复杂度,最简单的想法是先在数组中固定一个数字,再依次判断数组中剩下的n—1个数字与它的和是不是等于输入的数字。可惜这种思路需要的时间复杂度是O(n
2
),不满足题意要求。 假设现在随便在数组中找到两个数,如果它们的和等于输入的数字,那太好了,我们找到了要找的两个数字;如果小于输入的数字呢?我们希望两个数字的和再大一点。由于数组已经排好序了,我们是不是可以把较小的数字往后面移动一个数字?因为排在后面的数字要大~些,那么两个数字的和也要大一些,就有可能等于输入的数字了;同样,当两个数字的和大于输入的数字的时候,我们把较大的数字往前移动,因为排在数组前面的数字要小一些,它们的和就有可能等于输入的数字了。 我们把前面的思路整理一下:最初我们找到数组的第一个数字和最后一个数字。当两个数字的和大于输入的数字时,把较大的数字往前移动;当两个数字的和小于数字时,把较小的数字往后移动;当相等时,正合题意。
解析
转载请注明原文地址:https://kaotiyun.com/show/KWRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
水门事件
南宋永嘉学派的代表人物是()。
二战以来,资本主义经济在发展中出现了许多新问题,这主要表现在()
论述宋代理学的发展。
“二战期间,美国研制了原子弹并用于实践;1946年美国投入的第一台电子计算机最初是用于计算炮弹弹道;德国人研制成功的远程液体火箭是用于空袭英国的。”以上史实说明()。
印度种姓制度中,处于被剥削被压迫地位的两个瓦尔那是()①婆罗门②刹帝利③首陀罗④吠舍
晚清时期清帝年号的正确排序是
某激光打印机每分钟打印20页,每页4000字符,相应的设备驱动程序一次输出一个字符,采用中断方式,CPU处理每次中断需50微秒,则CPU用于打印的开销是()。
一个字节多路通道连接D1、D2、D3、D4、D5共5台设备,这些设备分别每10μs、30μs、30μs、50μs和75μs向通道发出一次数据传送的服务请求,请回答下列问题:(1)计算这个字节多路通道的实际流量和工作周期。(2)如果设计字
某系统有R1、R2和R3共3种资源,在TO时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况如表4-4所示,此时系统的可用资源向量为(2,1,2)。试问:若已知P1运行过程中的全部资源使用情况按时问先后顺序如下列出:i.P1被创建Ⅱ.申请1
随机试题
下列药物中,治疗十二指肠溃疡的首选药物是()。
阅读下列短文,回答有关问题。一只惊天动地的虫子迟子建我对虫子是不陌生的。小时候在菜园和森林中,见过形形色色的虫子。绿色的
甲状旁腺增生的超声表现为
细菌性肝脓肿出现下列哪一体征表示预后不良
根据我国仲裁法的规定,关于仲裁管辖的表述正确的是()。
南昌、衡阳和哈尔滨增先后发生过3起建筑火灾坍塌事故,建筑分别在火灾发生后115min、196min、537min时坍塌。坍塌建筑的底部或底部数层均为钢筋混凝土框架结构,上部均为砖混结构。事实上,下列建筑结构中,耐火性能相对较低的是()。
下列项目中属于一般经营性支出的是()。
以下选项中属于二维动画的是()。
美国经济学家马尔萨斯提出:“人口增长的趋势永远快于生产的增长。如果不加控制,人口总是按几何级数增长,而生活资料只能按照算数级数增长,人口扩张到生活资料仅能够维持生存的极限时,就会出现饥饿、战争和疾病。”由此可推出()。
下列犯罪中不属于妨害司法罪的是()。
最新回复
(
0
)