Täglicher AtCoder # 3 in Python

Einführung

Letztes Mal Es ist der dritte Tag.

#3 Problem

** Gedanken ** 1WA, 4TLE (WA hat einen Fehler eingereicht) Der größte Feind war diesmal TLE. Ich habe kein Bild vom Rechenaufwand, aber ich kannte die interne Implementierung von Python nicht. Als ich mir das Problem ansah, hatte ich die Angewohnheit, das Problem zu sortieren, vorerst die Maximal- und Minimalwerte zu finden. Zuerst dachte ich, dass der Mindestwert herauskommen würde, wenn ich in der Reihenfolge mit for subtrahiere,

l = [10,15,11,14,12]
l.sort(reverse=True) #l = [15,14,12,11,10]
ans = l[0]
for i in range(n-1):
    ans = min(l[i+1] - l[i],ans)

Ich dachte, es würde funktionieren. Es ist jedoch notwendig, den Minimalwert unter k zu finden, der aus n ausgewählt ist. Daher ist es notwendig, k sortierte Eingänge und max-min unter ihnen herauszuziehen. Als ich darüber nachdachte, wie man k mal k nimmt, habe ich Slices verwendet, weil die Python-Liste Slices enthält. Das war ein großer Fehler. Anscheinend ** brauchen Python-Slices extrem viel Zeit, wenn sie auf großen Objekten ausgeführt werden **. Wenn Sie den Grund kennen, lassen Sie es mich bitte wissen. Dauert der Zugriff auf das Objekt sehr lange? Also derjenige, der TLE mit Scheiben verwendet

n, k = map(int,input().split())
h = [int(input()) for i in range(n)]
h.sort(reverse=True)

seed = h[0]
for i in range(0,n-k+1):
    high = h[i:i+k][0] - h[i:i+k][k-1] #Hier
    seed = min(high,seed)

print(seed)

Ich verbringe Zeit damit, den Kommentarteil aufzuschneiden. Selbst wenn ich meine, war tax_free, das ich in Scheiben schneiden möchte, viermal TLE. Wenn Sie jetzt darüber nachdenken, können Sie es nach Index angeben, ohne es separat zu schneiden.

Es stellte sich heraus, dass die Scheibe lange Zeit aß, also habe ich dies im Index angegeben

n, k = map(int,input().split())
h = [int(input()) for i in range(n)]
h.sort(reverse=True)

seed = h[0]
for i in range(0,n-k+1):
    high = h[i] - h[i+k-1]
    seed = min(high,seed)

print(seed)

Nicht in Scheiben geschnitten.

Zusammenfassung

Ich habe nicht verstanden, wie sich Python anfühlt. Geben Sie von nun an direkt nach Index an, ohne Slices zu verwenden. wir sehen uns

Recommended Posts

Täglicher AtCoder # 36 mit Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 33 in Python
Täglicher AtCoder # 7 in Python
AtCoder # 24 jeden Tag mit Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 17 mit Python
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 47 mit Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Täglicher AtCoder # 10 mit Python
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Täglicher AtCoder # 20 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 14 mit Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 49 in Python
Täglicher AtCoder # 27 in Python
AtCoder # 1 jeden Tag mit Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 16 in Python
Täglicher AtCoder # 12 in Python
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 23 in Python
Täglicher AtCoder # 34 in Python
Täglicher AtCoder # 51 mit Python
Täglicher AtCoder # 31 in Python
Jeden Tag mit Python AtCoder # 46
Täglicher AtCoder # 35 mit Python
AtCoder # 9 jeden Tag mit Python
Täglicher AtCoder # 44 mit Python
Jeden Tag mit Python AtCoder # 41
Atcoder ABC164 A-C in Python
atCoder 173 Python
Python-Eingabehinweis in AtCoder
Atcoder ABC167 A-D in Python
Atcoder ABC165 A-D in Python
Atcoder ABC166 A-E in Python
Atcoder ABC169 A-E in Python
AtCoder ABC177 A-D mit Python
Löse den Atcoder ABC169 A-D mit Python