早教吧作业答案频道 -->数学-->
一个无序数组,任意两个数相加等于一个给定的数,并且用复杂度最小的方法得出
题目详情
一个无序数组,任意两个数相加等于一个给定的数,并且用复杂度最小的方法得出
▼优质解答
答案和解析
1.最简单的方法就是穷举,这种虽然简单,但是非常不划算,时间复杂度达到O(N^2)
2.可以换一个角度考虑,给定的数如果是M,那么针对数组中一个数字N,我们只需要查找一下数
组中是否含有M-N就可以了,这样就转换为数组查找问题了,然后可以利用空间换时间来搞
定,搞一个hash表,然后把每一个都映射到hash表中去,然后查找的时候就需要O(1)就可以
了,只不过空间复杂度达到O(N)
3.可以先排序一下,使用快排,时间复杂度为O(NlogN),然后令i = 0,j = n - 1,计算sum = arr[i]
+ arr[j],如果sum大于M就让j = j - 1,否则让i = i + 1,这样一轮下来就可以了,时间复杂度
O(N),总的时间复杂度为O(NlogN)
2.可以换一个角度考虑,给定的数如果是M,那么针对数组中一个数字N,我们只需要查找一下数
组中是否含有M-N就可以了,这样就转换为数组查找问题了,然后可以利用空间换时间来搞
定,搞一个hash表,然后把每一个都映射到hash表中去,然后查找的时候就需要O(1)就可以
了,只不过空间复杂度达到O(N)
3.可以先排序一下,使用快排,时间复杂度为O(NlogN),然后令i = 0,j = n - 1,计算sum = arr[i]
+ arr[j],如果sum大于M就让j = j - 1,否则让i = i + 1,这样一轮下来就可以了,时间复杂度
O(N),总的时间复杂度为O(NlogN)
看了一个无序数组,任意两个数相加等...的网友还看了以下:
同一个世界同一个梦想和更高更快更强分别是奥运会的什么这个定义用英语怎么说呢 2020-05-13 …
对违反药品管理法规定,给用药人造成损害的,应当依法承担( )。 A.行政处罚B.行政处分 2020-05-25 …
一批商品按定价出售,每一件商品可以获得45元钱的利润.如果按定价给个减价35元出售12个,按定价打 2020-06-04 …
0-9这10个数中,给定一个数,然后再从其他9个数中任选一个,组成一个三位数;如,给定了数“5”, 2020-07-09 …
有关操作系统分配给终端用户时间片的问题6.假定一个分时系统允许20个终端用户同时工作.若对每个终端 2020-07-10 …
用2个成语写话可以抄段落只要有用2个成语写话可以抄段落段落至少100字其中的2个成语要有解释(到网 2020-07-15 …
用一系列的动词写一段做某个游戏的过程,或者描写蚂蚁搬家的经过.一定给好评哦!(100字用一系列的动词 2020-11-13 …
计算7.88×2.5+2.5×2.92可以应用()律进行简便计算,这个定律用字母表示为()。 2020-11-27 …
问一个作用力与反作用力的问题.根据牛顿第三定律对作用力与反作用力的解读,任何物体你给他一个力他也必定 2021-01-01 …
电流等于电压除以电阻这个定律用在是实际中太牛了,100m一平方毫米的铜线能负荷100多安培,你们说可 2021-01-14 …