Complexité du temps de leçon de codilité et mémo de réponse

Task: Maxcounters C'est une impression individuelle.

①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
Impressions et apprentissage

Je pensais que si je faisais le maximum à chaque essai, ce serait N * 2, donc J'ai essayé de maximiser uniquement lorsque cela était nécessaire. Mais, bien sûr, cela dépend de la fréquence d'apparition de N + 1, donc ce sera N * M. Convaincu.

②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

Impressions et apprentissage: je ne sais pas pourquoi N ** + M ** ??? .. .. Suspect. Et je n'ai pas atteint la vitesse N ou Log (N).

Recommended Posts

Complexité du temps de leçon de codilité et mémo de réponse
[Mon mémo] python
[Python] Mémo de conversion entre les données temporelles et les données numériques
[Mon mémo] python -v / python -V
Astuces Python (mon mémo)
Mémo de mesure du temps d'exécution Python
Mémo tranche python et rubis
Mémo Python ① Opérations sur les dossiers et fichiers
Bases statistiques et Python, graphisme, etc. (mémo)
Un mémo contenant Python2.7 et Python3 dans CentOS
Structure et fonctionnement des données Python (mémo d'apprentissage Python ③)
Mémo Python
mémo python
Mémo Python
mémo python
Mémo Python
Mémo Python
La réponse de "1/2" est différente entre python2 et 3
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
mémo d'apprentissage progate Python (mis à jour de temps en temps)
Pour représenter la date, l'heure, l'heure et les secondes en Python