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 Day45 commençant à zéro "1379. Trouver un nœud correspondant d'un arbre binaire dans un clone de cet arbre"
En ce moment, je résous le support des 100 questions les plus appréciées. Easy a été résolu, donc si vous êtes intéressé, veuillez vous rendre à la table.
Twitter Je le fais.
406. Queue Reconstruction by Height
Le niveau de difficulté est moyen. Extrait des 100 questions les plus appréciées.
Supposons que vous ayez une liste aléatoire de personnes dans votre file d'attente. Chaque personne se compose d'une paire d'entiers, «(h, k)», où «h» est la taille de la personne et «k» est la personne qui est en face de la personne et a une taille supérieure ou égale à «h». Fait référence au nombre de personnes.
Dans ce problème, nous concevons un algorithme qui reconstruit une file d'attente donnée.
Input: [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]
Output: [[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]
C'est un bon problème que vous devez organiser les deux entiers et formuler un algorithme précis.
Dans le cas d'un tel problème, il sera plus facile de comprendre si le problème est divisé en petits morceaux et si chaque processus est considéré indépendamment.
class Solution:
def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
if not people: return []
dic, height, res = {}, [], []
for i in range(len(people)):
p = people[i]
if p[0] in dic:
dic[p[0]] += (p[1], i),
else:
dic[p[0]] = [(p[1], i)]
height += p[0],
height.sort()
for h in height[::-1]:
dic[h].sort()
for p in dic[h]:
res.insert(p[0], people[p[1]])
return res
# Runtime: 88 ms, faster than 99.14% of Python3 online submissions for Queue Reconstruction by Height.
# Memory Usage: 14.3 MB, less than 5.88% of Python3 online submissions for Queue Reconstruction by Height.
Très vite! Si vous vérifiez attentivement la discussion, [ceci] J'ai été presque surpris par (https://leetcode.com/problems/queue-reconstruction-by-height/discuss/89345/Easy-concept-with-PythonC%2B%2BJava-Solution).
C'est tout pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts