Mencari Integer Terdekat daripada Nilai Diberi dalam Senarai
Untuk menentukan nombor dalam senarai tertentu yang paling hampir dengan nilai sasaran , terdapat beberapa pendekatan yang boleh dipertimbangkan:
Menggunakan min() Terbina Dalam Fungsi:
Jika senarai tidak diisih, fungsi min() menyediakan cara yang mudah untuk mencari elemen yang paling hampir. Ia membolehkan kami menentukan fungsi utama untuk menilai jarak dari nilai sasaran:
min(myList, key=lambda x:abs(x-myNumber))
Pendekatan ini mempunyai kerumitan masa O(n), dengan n ialah panjang senarai.
Menggunakan Kaedah Pembahagian Dua (untuk Senarai Isih):
Jika senarai sudah diisih atau boleh diisih dengan cekap, kaedah pembahagian dua menawarkan penyelesaian yang lebih pantas dengan kerumitan masa O(log n). Teknik ini melibatkan berulang kali membahagikan senarai itu kepada dua dan membandingkan nilai sasaran dengan elemen tengah sehingga elemen yang paling hampir ditemui.
Membandingkan Perbezaan Mutlak:
Pendekatan lain ialah untuk lelaran melalui senarai dan mengira perbezaan mutlak antara setiap elemen dan nilai sasaran. Elemen dengan perbezaan mutlak terkecil kemudiannya dianggap paling hampir:
closest_num = None min_diff = float('inf') for num in myList: diff = abs(num - myNumber) if diff < min_diff: closest_num = num min_diff = diff
Pendekatan ini mempunyai kerumitan masa O(n) juga.
Pilihan pendekatan bergantung kepada faktor-faktor seperti sebagai saiz senarai dan sama ada ia sudah diisih. Untuk senarai kecil atau senarai tidak diisih, fungsi min() boleh menjadi penyelesaian yang mudah. Untuk senarai besar atau disusun, kaedah pembahagian dua menawarkan kecekapan yang lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Integer Terhampir dengan Nilai Diberi dalam Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!