首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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-11-20
27
问题
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,我们可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,当输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使得它们的和正好是输入的那个整数数字。如果有多对数字的和等于输入的整数数字,输出任意一对即可。要求:
给出算法的基本设计思想。
选项
答案
基本设计思想:如果我们不考虑时间复杂度,最简单的想法是先在数组中固定一个数字,再依次判断数组中剩下的n-1个数字与它的和是不是等于输入的数字。可惜这种思路需要的时间复杂度是O(n
2
),不满足题意要求。 假设现在随便在数组中找到两个数,如果它们的和等于输入的数字,那太好了,我们找到了要找的两个数字;如果小于输入的数字呢?我们希望两个数字的和再大一点。由于数组已经排好序了,我们是不是可以把较小的数字往后面移动一个数字?因为排在后面的数字要大一些,那么两个数字的和也要大一些,就有可能等于输入的数字了;同样,当两个数字的和大于输入的数字的时候,我们把较大的数字往前移动,因为排在数组前面的数字要小一些,它们的和就有可能等于输入的数字了。 我们把前面的思路整理一下:最初我们找到数组的第一个数字和最后一个数字。当两个数字的和大于输入的数字时,把较大的数字往前移动;当两个数字的和小于数字时,把较小的数字往后移动;当相等时,正合题意。
解析
转载请注明原文地址:https://kaotiyun.com/show/1VRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1994年5月,江泽民在进一步强调正确处理改革、发展、稳定的关系时指出()。
在巴黎和会上获利最大的两个国家是()。
洪武年间修复过的水利工程有()。
下列现象均属于明朝手工业进步的表现的是()①嘉万年间民营手工业渐居主要地位②匠役制度瓦解③出现了雇佣劳动、组织手工工场的经营方式④加强了对工匠的剥削,工匠的人身依附关系加强
第二次世界大战后,国际关系最大的变化是()。
试分析淝水之战前后南北政局的特点及其变化。
“瓜步之战”发生在下列哪两个政权之间?()
在请求分页存储管理中,若采用FIFO的页面淘汰算法,当分配的页面数增加时,缺页中断的次数()。
下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控
随机试题
依据《巴黎公约》,下列表述正确的是()
患者男性,27岁,车祸后2小时,左腰部持续性疼痛,肉眼血尿。超声表现:右肾未见明显异常,左肾下极实质回声不均匀,可见不规则低回声区,肾周围有无回声区包绕,膀胱充盈良好,内见不规则团块状高回声浮动膀胱内不规则团块状高回声,最可能是
A.稀盐酸B.钌红试液C.稀醋酸D.硫酸E.10%α-萘酚乙醇溶液再加硫酸黏液的理化鉴别试剂为()。
依据《建设工程设计合同(示范文本)》,下列有关设计变更中提法不正确的是( )。
污水处理构筑物中卵形消化池,通常采用()施工。
根据《银团贷款业务指引》的规定,单家银行担任牵头行时,其承贷份额原则上不少于银团融资总金额的();分销给其他银团贷款成员的份额原则上不低于()。
书籍是我们的良师益友。困惑时它给你______。悲哀时它给你慰藉,得意时它给你______,低落时它给你力量。填入划横线部分最恰当的一项是()。
WAIS-RC施测的基本步骤为()。
分散复习效果优于集中复习,是因为分散复习可降低疲劳感,减少______抑制和倒摄抑制的影响。
Ateachershowedstudentsanexampleandexplainedtheusageofpastperfecttense,andaskedstudentstolistten"pastperfect
最新回复
(
0
)