Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda mencari nombor yang paling hampir dalam senarai dengan nilai yang diberikan?
Memandangkan senarai integer dan nombor sasaran, tugasnya adalah untuk mencari nombor dalam senarai yang paling hampir dengan sasaran. Masalah ini boleh diselesaikan menggunakan pelbagai pendekatan:
Jika susunan elemen dalam senarai tidak dijamin, fungsi min() dengan parameter utama boleh digunakan. Kaedah ini mencari jarak minimum antara setiap elemen dan sasaran, dan mengembalikan elemen dengan jarak minimum:
def takeClosest(myList, myNumber): return min(myList, key=lambda x: abs(x - myNumber))
Jika senarai diketahui diisih, carian binari boleh digunakan untuk mencari nombor terdekat dengan lebih cekap dalam masa 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))
Atas ialah kandungan terperinci Bagaimanakah anda mencari nombor yang paling hampir dalam senarai dengan nilai yang diberikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!