首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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
33
问题
输入一个按升序排序过的整数数组{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月,江泽民在进一步强调正确处理改革、发展、稳定的关系时指出()。
康有为在他的《孔子改制考》中将孔子奉为主张变革的先驱,下列描述正确的是()
晚清时期清帝年号的正确排序是()
唐朝对外关系呈现出前所未有的盛况,其原因不包括()
西汉初年,西域共有36国,其中以()人口最多。
1854年,英国外交大臣致函英国驻华公使说:“为了适应外商对农业产品已增加了的需要,新的贸易市场尚待开辟。”1856年,法国外长则指令法国驻华代办强调“商业关系的推广”,并强调“这是一个关系到至高无上权益的问题”。这说明()。
指令系统字长16位,每个地址码为6位,采用扩展操作码的方式,试设计14条二地址指令,100条一地址指令,100条零地址指令。(1)画出操作码的扩展形式。(2)下图为指令译码逻辑图,其中只给出了二地址指令的译码逻辑,试补全一地址指令和零地址指令的
随机试题
患者小便点滴而下,或尿如细线,甚则阻塞不通,小腹胀满疼痛,舌紫黯,或有瘀点,脉涩。治宜选用
急性化脓性阑尾炎主要的病理改变是指
下列关于萎缩性胃炎的描述,不正确的是
下列选项中,()是通过计算报表中各项目占总体的比重或结构,反映报表中的项目与总体关系情况及其变动情况的一种财务分析方法。
宋代风俗画《清明上河图》的作者是__________。
毛泽东实际上否定了“城市中心论”,确立了“以乡村为中心”的思想的文章是()。
个人与他人的关系,在本质上是
下列IPv6地址表示中,错误的是()。
在考生文件夹下,打开文档WORD1.docx,按照要求完成下列操作并以该文件名(WORD1.docx)保存文档。【文档开始】高速CMOS的静态功耗在理想情况下,CMOS电路在非开关状态时没有直流电流从电源Vcc到地,因而器件没有静态功耗。对所有的
Whenmenandwomengettogether,thereare,ineffect,twoworlds--hisandhers.Theyhavedifferentvalues,【B1】______,andhab
最新回复
(
0
)