如何在列表中找到最接近给定值的数字?

DDD
发布: 2024-11-09 17:48:02
原创
582 人浏览过

How do you find the closest number in a list to a given value?

在列表中查找与给定值最接近的数字

给定一个整数列表和一个目标数字,任务是在列表中找到与给定值最接近的数字是最接近目标的。这个问题可以通过多种方法解决:

使用最小距离

如果不能保证列表中元素的顺序,可以使用带有 key 参数的 min() 函数。此方法查找每个元素与目标之间的最小距离,并返回距离最小的元素:

def takeClosest(myList, myNumber):
    return min(myList, key=lambda x: abs(x - myNumber))
登录后复制

使用二分查找(二分法)

如果已知列表排序后,可以应用二分查找在 O(log n) 时间内更有效地找到最接近的数字:

def takeClosest(myList, myNumber):
    low = 0
    high = len(myList) - 1
    while low <= high:
        mid = (low + high) // 2
        if myList[mid] == myNumber:
            return myList[mid]
        elif myList[mid] < myNumber:
            low = mid + 1
        else:
            high = mid - 1
    return min([myList[low], myList[high]], key=lambda x: abs(x - myNumber))
登录后复制

以上是如何在列表中找到最接近给定值的数字?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板