Terdapat senarai rentetan tarikh, seperti berikut:
lst = ['2017-06-01', '2017-06-08', '2017-06-15', '2017-06-22', '2017-06-29', ...]
Cari rentetan tarikh dalam s = ['2017-06-09']
与lst
yang paling serupa
IDEA 1: Tukar nilai S dan LST ke dalam tarikh, melintasi dan membandingkan perbezaan dalam beberapa saat, dan yang terkecil adalah rentetan tarikh yang anda cari.
Adakah cara yang lebih baik untuk mencapai matlamat ini? ?
Saya akan memberi anda idea untuk rujukan anda
lst.append(s)
lst.sort()
num=lst.index(s)
Kemudian bandingkan lst[num-1] dan lst[num+1] Semakin kecil perbezaan bilangan saat adalah hasilnya, jadi tidak perlu merentasi dan mengira cap waktu.
Jika anda rasa ia bagus, sila berikan kepada Zanga dan pakai.
Tolak tarikh dengan mengalih keluar tarikh dalam
-
转换为整数, 再分别与s
, dan nombor dengan nilai mutlak terkecil ialah tarikh terdekat.Saya merasakan bahawa lz bermaksud untuk tidak melintasi lst Sama ada ia adalah isihan atau penolakan, traversal sebenarnya berlaku
Saya harus menggunakan kaedah dikotomi ini mungkin maksudnya
Baca sahaja sebagai kod pseudo, itulah maksudnya, dengan cara ini bilangan traversal adalah paling sedikit.