NlogN复杂度寻找数组中两个数字和等于给定值

2023-11-07

算法导论:22页2.3-7
描述一个运行时间为O(nlogn)的算法,找出n个元素的S数组中是否存在两个元素相加等于给定x值

AC解:

a=[1,3,6,7,9,15,29]
def find2sumx(nums,x):
    nums.sort()
    le,ri=0,len(nums)-1
    while le>=0 and ri<=len(nums) and le<ri:
        if nums[le]+nums[ri]<x:
            le+=1
        elif nums[le]+nums[ri]>x:
            ri-=1
        else:
            return( (le,ri),(nums[le],nums[ri]))
    return (-1)
print(find2sumx(a,15))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NlogN复杂度寻找数组中两个数字和等于给定值 的相关文章

随机推荐