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!