gpt4 book ai didi

O(nlogn)的算法来搜索两个数组中两个元素的和

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:00 26 4
gpt4 key购买 nike

给定两个已排序的整数数组 A1、A2,具有相同的长度 n 和一个整数 x,我需要编写一个算法在 O(nlog(n)) 中运行,确定是否存在两个元素 a1, a2(每个数组中的一个元素)使 a1+a2=x.

一开始我想有两个索引迭代器i1=0, i2=0(每个数组一个)从0开始,每次增加一个,这取决于A1的下一个元素大于/小于 A2 的下一个元素。但是在两个阵列上测试之后我发现它可能会遗漏一些可能的解决方案......

最佳答案

好吧,因为它们都已经排序了,所以算法应该是 O(n)(排序是 O(n * log(n))):

i1 = 0
i2 = A2.size - 1
while i1 < A1.size and i2 >= 0
if A1[i1] + A2[i2] < x
++i1
else if A1[i1] + A2[i2] > x
--i2
else
success!!!!

关于O(nlogn)的算法来搜索两个数组中两个元素的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49336430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com