J'ai écrit ce code: La sortie est la suivante:
[20, 20, 19, 16, 10, 0] P> Mais j'ai un petit problème. Temps d'exécution C'est un peu trop long pour les grandes listes.
Pouvez-vous me dire s'il existe un autre mode pour l'écrire? P> thx! P> p>
4 Réponses :
Je suggérerais avec quelques tests, il est beaucoup plus performant, pour les chiffres de 20 km p> ithertools.accumuler code>
accumulate 0:00:00.004001
question 0:00:05.340281
J'ai oublié de mentionner, la liste doit contenir 0 et j'ai utilisé arr.append (0), probablement c'est le problème ..
@Rares où devrait être le 0? Je ne vois pas cette ligne dans votre code, pourrait modifier votre message pour l'ajouter?
Pour la liste de quelques dizaines de valeurs, résultat = liste (accumuler (inversé (ARR), ajouter)) [:: - 1] code> est plus rapide (et environ 20% plus rapide pour les grandes listes), comme Il n'est pas nécessaire de construire la liste inversée. Pour les petites listes, la différence est négligeable.
Ce n'est pas parfait mais un peu plus rapide: heure: 1.9620031519999657 code> p>
TEMPS: 1.408351424999978 CODE> P> P>
in toute solution qui fonctionne uniquement dans < Strong> O (N) Strong> La complexité du temps devrait être bonne pour vous. Voici celui-ci qui ne nécessite aucune importation externe et est similaire à votre style de votre solution d'origine: p> python code>, supprimer le premier élément d'une liste code> nécessite que tous les éléments suivants soient déplacés et prend donc
n code> fois (avec
n code> étant la longueur de votre tableau), l'ensemble La complexité du temps de votre solution est
Si vous êtes à chaque fois conscient, essayez toujours d'utiliser des bibliothèques telles que IN NUMPY Ce sera facile et efficace. P> NUMPY CODE> STRORT>.
pip install numpy
juste dire, quand j'exécute votre code, je reçois
[21, 20, 18, 15, 11, 6] code>
Pourquoi compter tout encore? Si vous supprimez une valeur de la liste, soustrayez-le du nombre précédent.
De plus, vous pouvez construire les comptes de l'autre côté, à partir de la fin et de l'ajout, et d'inverser la liste des comptes à la fin si vous avez vraiment besoin de.
J'ai oublié de mentionner, la liste doit contenir 0 et j'ai utilisé arr.append (0)
quel est le résultat attendu? Les éléments des éléments sont-ils comptés?
Il n'est pas nécessaire de commander des comptes.La matrice initiale est [1, 2, 3, 4, 5, 6] et la sortie attendue est [21, 20, 18, 15, 11, 6, 0], IDK Comment ajouter 0 en tableau.