Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est d'implémenter des fonctions et des classes spécifiques en fonction du thème.
En guise de contre-mesure, il semble qu'un site appelé Let Code prendra des mesures.
Un site qui forme une puissance algorithmique capable de résister aux tests de codage dont on parle très tôt.
Je pense qu'il vaut mieux avoir la puissance de l'algorithme d'un être humain, donc je vais résoudre le problème de manière irrégulière et écrire la méthode que j'ai pensé à ce moment-là sous forme de mémo.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day 33 "1. Two Sum" commençant à zéro
En gros, je voudrais résoudre l'acceptation facile par ordre décroissant.
Twitter Je le fais.
Il m'est arrivé de voir ce problème résolu en Java sur YouTube, alors j'ai décidé de l'essayer aussi.
Le niveau de difficulté est facile!
Le problème est que l'on nous donne le nombre naturel numRows
, alors faites un triangle de Pascal comme celui de l'exemple.
Input: 5
Output:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
Puisqu'il est décidé de mettre 1 au début et à la fin, il semble bon de préparer un état où 1 est inséré à l'avance et de rajouter 1 à la fin du processus.
Le problème est de savoir comment calculer et insérer la somme des nombres supérieurs, mais il semble que vous puissiez obtenir et ajouter deux éléments en tournant la boucle for deux fois.
Cette fois, je l'ai écrit pour que si numRows
vaut 0 et 1, il soit exclu en tant qu'exception.
En faisant cela, je pense que c'est plus facile à lire car il suffit d'écrire le traitement à partir de la troisième étape.
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if numRows == 0:
return []
elif numRows == 1:
return [[1]]
triangle = [[1]]
for i in range(1,numRows):
row = [1]
for j in range(1,i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
triangle.append(row)
return triangle
# Runtime: 28 ms, faster than 73.84% of Python3 online submissions for Pascal's Triangle.
# Memory Usage: 13.8 MB, less than 7.14% of Python3 online submissions for Pascal's Triangle.
Oui, ça ressemble à ça.
Cette façon d'écrire est meilleure! Je l'ai écrit dans cette langue! Si vous avez des questions, n'hésitez pas à commenter.
Recommended Posts