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.
Apparemment, de nombreux ingénieurs prennent des mesures sur le site appelé LetCode.
C'est un site qui forme la puissance algorithmique qui peut résister au test de codage effectué au début de l'histoire, et c'est une voie inévitable pour ceux qui veulent faire carrière dans une entreprise de technologie à l'étranger.
Je l'ai écrit en grand, mais je n'ai pas l'intention d'avoir une telle interview pour le moment.
Cependant, en tant qu'ingénieur informatique, il serait préférable d'avoir le même niveau de puissance d'algorithme qu'un être humain, donc j'aimerais résoudre le problème de manière irrégulière et écrire la méthode que je pensais à l'époque sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day78 "206. Reverse Linked List" à partir de zéro
À l'heure actuelle, je donne la priorité au moyen 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.
** Blog technique Commencé! !! ** ** Je pense que la technologie écrira sur LetCode, Django, Nuxt, etc. ** C'est plus rapide à mettre à jour **, merci pour votre coopération!
1282. Group the People Given the Group Size They Belong To Le niveau de difficulté est moyen.
Le problème est qu'il y a «n» personnes avec des ID de «0» à «n -1», chacune appartenant à exactement un groupe. Étant donné le tableau groupSizes
de longueur n
, qui indique la taille du groupe auquel appartient chaque personne, renvoie le nombre de groupes et l''ID` des personnes de chaque groupe.
Vous pouvez renvoyer n'importe quelle solution dans n'importe quel ordre, et ainsi de suite pour ʻID`. Il est également garanti qu'au moins une solution existe.
Example 1:
Input: groupSizes = [3,3,3,3,3,1,3] Output: [[5],[0,1,2],[3,4,6]] Explanation: Other possible solutions are [[2,1,6],[5],[0,4,3]] and [[5],[0,6,2],[4,3,1]].
Example 2:
Input: groupSizes = [2,1,3,3,3,2] Output: [[1],[0,5],[2,3,4]]
#Solution
class Solution:
def groupThePeople(self, groupSizes):
ans,group,next_group = [],[],[]
for i,j in enumerate(groupSizes):
group.append((j,i))
group.sort()
for length,index in group:
next_group.append(index)
if len(next_group) == length:
ans.append(next_group)
next_group = []
return ans
# Runtime: 64 ms, faster than 75.60% of Python online submissions for Group the People Given the Group Size They Belong To.
# Memory Usage: 12.7 MB, less than 59.40% of Python online submissions for Group the People Given the Group Size They Belong To.
Tout d'abord, remplacez l'index et la valeur de «groupSizes» dans le «groupe» préparé et triez.
Ensuite, récupérez la longueur et l'index triés, ajoutez la longueur à next_group
, vérifiez si la longueur de group
et la longueur de next_group
sont les mêmes à chaque fois, et si elles sont identiques, renvoyez-le. Ajouter à ans et terminer.
Notez que si vous n'initialisez pas next_group
après l'avoir ajouté à ce ʻans`, vous obtiendrez ce qui suit:
Input
[3,3,3,3,3,1,3]
Output
[[5,0,1,2,3,4,6],[5,0,1,2,3,4,6]]
Expected
[[5],[0,1,2],[3,4,6]]
Je me suis demandé s'il y avait quelque chose parce que l'acceptation était élevée, mais il n'y avait rien de particulier.
Alors c'est tout pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts