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 de mettre en œuvre 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 de l'algorithme qui peut résister au test de codage effectué au début, et c'est un chemin 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'une personne, alors 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 Day 61 "7. Integer Integer" à 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!
83. Remove Duplicates from Sorted List
Le niveau de difficulté est facile.
Je n'ai pas géré le problème que j'ai résolu et le problème j'ai bien écrit l'article, donc j'ai pensé qu'il était écrit clairement.
Seul celui-ci écrivait. Le nom était déroutant et j'ai ri involontairement.
Maintenant, le problème cette fois est que puisqu'une liste concaténée est donnée, veuillez supprimer les doublons pour que tous les éléments n'apparaissent qu'une seule fois.
Example 1:
Input: 1->1->2 Output: 1->2 Example 2:
Input: 1->1->2->3->3 Output: 1->2->3
J'ai écrit comme suit. Est-ce particulier à d'autres langues? Il y a peu d'éléments qui le composent, et je pense qu'il peut être lu par ceux qui écrivent dans d'autres langues.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
runner = head
while runner:
while runner.next and runner.next.val == runner.val:
runner.next = runner.next.next
runner = runner.next
return head
# Runtime: 48 ms, faster than 31.67% of Python3 online submissions for Remove Duplicates from Sorted List.
# Memory Usage: 14 MB, less than 21.02% of Python3 online submissions for Remove Duplicates from Sorted List.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
origin = head
pre = head
head = None if head is None else head.next
while head:
if pre.val == head.val:
pre.next = head.next
else:
pre = pre.next
head = head.next
return origin
# Runtime: 44 ms, faster than 58.51% of Python3 online submissions for Remove Duplicates from Sorted List.
# Memory Usage: 13.8 MB, less than 55.82% of Python3 online submissions for Remove Duplicates from Sorted List.
En revanche, il était plus rapide d'écrire en tenant deux.
Si vous le forcez, la première affectation à head
est écrite dans la notation d'inclusion, vous risquez donc d'être confus pendant un moment.
En bref
if head is None:
head = None
else:
head.next
Je viens de l'écrire brièvement. Personnellement, je l'aime parce qu'il peut être combiné en un seul lors d'un retour. Il est bon d'être court et agréable à écrire.
Quand j'ai vu l'origine, je voulais manger le déjeuner d'origine, donc cette fois c'est à ici. Je vous remercie pour votre travail acharné.
Recommended Posts