javascript - petit algorithme python
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-15 09:21:43
0
3
1150

Il existe une liste de chaînes de date, comme suit :


lst = ['2017-06-01', '2017-06-08', '2017-06-15', '2017-06-22', '2017-06-29', ...]

Trouvez quelle chaîne de date dans s = ['2017-06-09']lst est la plus similaire

Idée 1 : convertissez les valeurs​​de s et lst en dates, parcourez et comparez la différence en secondes, et la plus petite est la chaîne de date que vous recherchez.

Existe-t-il une meilleure façon d’y parvenir ? ?

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(3)
typecho

Je vais vous donner une idée pour votre référence
lst.append(s)
lst.sort()
num=lst.index(s)
Puis comparez lst[num-1] et lst[num+1] Le plus petit le nombre de secondes de différence est le résultat, il n'est donc pas nécessaire de parcourir et de calculer l'horodatage.
Si vous le trouvez bien, donnez-le à Zanga et adoptez-le.

漂亮男人

Soustrayez les dates en supprimant les dates entre -转换为整数, 再分别与s, et le nombre avec la plus petite valeur absolue est la date la plus proche.


# Python code
lst = ['2017-06-01', '2017-06-08', '2017-06-15', '2017-06-22', '2017-06-29']
s = ['2017-06-09']
date = [''.join(x.split('-')) for x in lst]
datetoint = [int(x) for x in date]
gaps = [abs(x - int(''.join(s[0].split('-')))) for x in datetoint]
mostrecentdate = lst[gaps.index(min(gaps))]
print(mostrecentdate)
伊谢尔伦

Je pense que lz signifie ne pas parcourir lst. Qu'il s'agisse d'un tri ou d'une soustraction, le parcours se produit réellement
Je devrais utiliser la méthode de dichotomie. C'est probablement ce que cela signifie

.
i = 0
j = len(list)
while True:
    index = (i + j) / 2
    if s > lst[index]:
        i = index
    else:
        j = index
    continue

Il suffit de le lire sous forme de pseudo-code, c'est ce que cela signifie de toute façon, de cette façon, le nombre de traversées est le moins possible.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!