如何在清單中找到最接近給定值的數字?

DDD
發布: 2024-11-09 17:48:02
原創
583 人瀏覽過

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))
登入後複製

使用二分找出距離最小的元素:

使用二分找出(二分法)
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))
登入後複製
如果已知清單排序後,可以應用二分查找在O(log n) 時間內更有效地找到最接近的數字:

以上是如何在清單中找到最接近給定值的數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板