首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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
41
问题
输入一个按升序排序过的整数数组{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
学硕统考专业
相关试题推荐
1979年3月,邓小平在中央理论工作务虚会上首次明确提出必须坚持()。
以下内容不属于中国共产党为解决中西部落后问题,巩固发展国防事业而采取的三线建设的是()。
下面哪部经典是我国最早的官方史书?()
1962年1、2月间,中共中央召开的统一思想、总结经验教训、明确工作方向的会议是()。
下面哪项条约没有涉及德国的赔款问题?()
30年代,美国政府对一系列国际问题执行中立政策,最主要的原因是()。
1947年,刘邓大军千里跃进大别山,揭开了战略反攻的序幕。 据此回答问题:中共中央将战略决战的方向首先指向()
UNIX系统中,输入/输出设备看作是()。
某虚拟存储系统中有一个进程共有6页(0~5),其中代码占3页(0~2),数据占1页(3),数据堆占1页(4),用户栈占1页(5)。它们依次存放在外存的22,23,25,26存储块。当前,代码页已经分配在物理内存的66,67,87页,数据页为31,并已经进行
某系统正在执行三个进程P1、P2和P3,各进程的计算(CPU)时间和I/O时间比例如下表所示。为提高系统资源利用率,合理的进程优先级设置应为
随机试题
肘关节脱位整复后应
龋病按发病进展速度可分为()
自制原始凭证按其填制手续不同,可分为()。
下列各项预算中,属于财务方面预算的是()。
儿童福利院社会工作者何某服务残疾儿童多年,相信他们有潜能,运用各种手法帮助他们成长,适应社会。例如,他带领儿童走进社区,为居民表演节目,得到居民赞赏。何某的这些实践行动说明社会工作价值观的作用是()。
读下图,回答问题。甲大陆东、西两侧的③自然带对应的气候类型()。
Withintwoweeksofarrival,allforeignershadto_____withthelocalpolice.
儿童身心发展有两个高速发展期:新生儿与青春期,这是身心发展()规律的反映。
Ⅰ类错误
A、 B、 C、 D、 D
最新回复
(
0
)