Es scheint, dass Codierungstests in Ingenieurinterviews im Ausland durchgeführt werden, und in vielen Fällen besteht die Hauptsache darin, bestimmte Funktionen und Klassen entsprechend dem Thema zu implementieren.
Anscheinend ergreifen viele Ingenieure Maßnahmen auf der Website namens LetCode.
Es ist eine Site, die die Algorithmusleistung trainiert, die dem Codierungstest standhält, der in der frühen Geschichte durchgeführt wird, und es ist ein unvermeidlicher Weg für diejenigen, die eine Karriere bei einem ausländischen Technologieunternehmen aufbauen möchten.
Ich habe es großartig geschrieben, aber ich habe im Moment keine Pläne für ein solches Interview.
Als IT-Ingenieur ist es jedoch besser, die gleiche Algorithmusleistung wie eine Person zu haben. Daher möchte ich das Problem unregelmäßig lösen und die Methode, die ich damals dachte, als Memo aufschreiben.
Ich löse es mit Python3.
Letztes Mal Leet Code Day 83 "102. Durchlauf der Order auf Binäre Baumebene" ab Null
Twitter Ich mache es.
** Technischer Blog Gestartet! !! ** ** ** Ich denke, die Technologie wird über LetCode, Django, Nuxt usw. schreiben. ** Dies ist schneller zu aktualisieren **, vielen Dank für Ihre Mitarbeit!
142. Linked List Cycle Ⅱ Der Schwierigkeitsgrad ist Mittel. Wie beim letzten Mal ist dies ein Auszug aus der Problemsammlung.
Das Problem ähnelt im Format dem zuvor gelösten Linked List Cycle. Eine verkettete Liste wird angegeben. Gibt den Knoten zurück, an dem der Zyklus dieser verketteten Liste beginnt. Wenn es keinen Zyklus gibt, wird null zurückgegeben.
Um den Zyklus in einer bestimmten verketteten Liste darzustellen, verwenden Sie die Ganzzahl pos am Ende der verketteten Liste, um die Verbindungsposition (Index 0) darzustellen. Wenn pos -1 ist, enthält die verknüpfte Liste keine Zyklen.
Hinweis: Ändern Sie die verknüpfte Liste nicht.
Example 1:
Input: head = [3,2,0,-4], pos = 1 Output: tail connects to node index 1 Explanation: There is a cycle in the linked list, where tail connects to the second node.
Example 2:
Input: head = [1,2], pos = 0 Output: tail connects to node index 0 Explanation: There is a cycle in the linked list, where tail connects to the first node.
Example 3:
Input: head = [1], pos = -1 Output: no cycle Explanation: There is no cycle in the linked list.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def detectCycle(self, head: ListNode) -> ListNode:
if not head:
return None
root,dic = head,{}
while root:
if root in dic:
return root
dic[root] = 1
root = root.next
return root
# Runtime: 56 ms, faster than 51.83% of Python3 online submissions for Linked List Cycle II.
# Memory Usage: 16.9 MB, less than 51.15% of Python3 online submissions for Linked List Cycle II.
Ich habe es mit einem Wörterbuch geschafft.
Als ich es später noch einmal überlegte, dachte ich, es wäre einfacher zu verstehen, wenn ich es mit zwei Zeigern lösen würde, aber ich denke, diesmal ist das in Ordnung. ~~ Es ist am wichtigsten, weiter zu lösen !! ~~
Das war's für diese Zeit. Danke für deine harte Arbeit.
Recommended Posts