Komplexität der Codilitätsstunden und mein Antwortmemo (Python)

Task: Maxcounters Es ist ein individueller Eindruck.

①Speed N*M

def solution(N, A):
    anslist = [0] * N
    maxvalue = 0
    for i in A:
        try:
            anslist[i-1] += 1
        except:
            maxvalue = max(anslist)
            anslist = [maxvalue] * N
    return anslist
Eindrücke und Lernen

Ich dachte, wenn ich bei jedem Versuch maximal wäre, wäre es N * 2, also Ich habe nur bei Bedarf versucht, das Maximum zu erreichen. Aber natürlich hängt es von der Häufigkeit des Auftretens von N + 1 ab, also wird es N * M sein. Überzeugt.

②Speed: N+M

def solution(N, A):
    anslist = [0] * N
    maxchecker = 0
    for i in A:
        try:
            anslist[i-1] += 1
            if anslist[i-1] > maxchecker:
                maxchecker = anslist[i-1]
        except:
            anslist = [maxchecker] * N
    return anslist

Eindrücke und Lernen: Ich weiß nicht warum N ** + M ** ??? .. .. Vermuten. Und ich habe Geschwindigkeit N oder Log (N) nicht erreicht.

Recommended Posts

Komplexität der Codilitätsstunden und mein Antwortmemo (Python)
[Mein Memo] Python
[Python] Konvertierungsnotiz zwischen Zeitdaten und numerischen Daten
[Mein Memo] Python -v / Python -V
Python-Tipps (mein Memo)
Memo zur Messung der Python-Ausführungszeit
Python und Ruby Slice Memo
Python-Memo ① Ordner- und Dateivorgänge
Statistische Grundlagen und Python, Grafik usw. (Memo)
Ein Memo mit Python2.7 und Python3 in CentOS
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Lesen und Schreiben passt Dateien mit Python (Memo)
progate Python-Lernnotiz (von Zeit zu Zeit aktualisiert)
Zur Darstellung von Datum, Uhrzeit, Uhrzeit und Sekunden in Python