首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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
67
问题
输入一个按升序排序过的整数数组{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
学硕统考专业
相关试题推荐
明朝初加强专制统治的措施中,与后来宦官专权有直接关系的是()。
战国时期的著名水利工程“郑国渠”位于今天的()。
晚清时期清帝年号的正确排序是()
在巴黎和会上获利最大的两个国家是()。
洪武年间修复过的水利工程有()。
埃及曾两次被波斯帝国征服,波斯第二次征服埃及的时间是()。
第二次世界大战后,国际关系最大的变化是()。
试析淝水之战前后南北政权的特点和变化。
“瓜步之战”发生在下列哪两个政权之间?()
随机试题
麦门冬汤的主治证是
在合理情绪疗法第二阶段,即领悟和修通阶段,咨询者的角色
下列关于水泥强度的说法错误的是()。
某生产性物业投资25000万元,预期寿命为5年,净残值为0,每年净现金流量为随机变量,其可能的三种状态及其概率都是:(1)5000万元(P=30%);(2)10000万元(P=50%);(3)12000万元(P=20%)。基准收益率为12%,已知
音乐课上,老师带领学生赏析《二泉映月》的艺术表现力,这属于美育方法中的()。
某幼儿被蚊子叮咬后,妈妈为他大面积涂花露水,结果出现酒精中毒症状,这是因为幼儿皮肤()。
根据《刑事诉讼法》的规定,下列不属于中级人民法院管辖的第一审刑事案件是()。
Thereweresomeconsistentpatternsamongtheheavierreaders:Fortheyoungerchildren—ages6to11—beingreadaloudtoregula
100Mbps快速以太网与传统10Mbps以太网相比,不同的是
Althoughsomeshoppingmallsareinneedofrecyclingormajorremodeling,thevastmajority—82percent—aredoingquitewell,th
最新回复
(
0
)