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 63 "195. Zehnte Zeile" ab Null
Im Moment priorisiere ich das Medium der 100 beliebtesten Fragen. Easy wurde gelöst. Wenn Sie interessiert sind, gehen Sie bitte zum Tisch.
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!
287. Find the Duplicate Number
Der Schwierigkeitsgrad ist Mittel. Auszug aus den 100 beliebtesten Fragen.
Das Problem besteht darin, zu beweisen, dass es mindestens eine doppelte Zahl geben muss, wenn ein Array "nums" mit n + 1 Ganzzahlen angegeben wird, wobei jede Ganzzahl zwischen 1 und n liegt. .. Entwerfen Sie einen Algorithmus, der die Anzahl der Duplikate ermittelt, vorausgesetzt, es gibt nur ein Duplikat.
Example 1: Input: [1,3,4,2,2] Output: 2
Example 2: Input: [3,1,3,4,2] Output: 3
Note: Ändern Sie das Array nicht (vorausgesetzt, das Array ist schreibgeschützt). Es darf nur der zusätzliche Raum der Konstanten O (1) verwendet werden. Die Laufzeitkomplexität muss kleiner oder gleich O (n2) sein. Das Array enthält nur ein Duplikat, das jedoch mehrmals wiederholt werden kann.
Übersehen Sie nicht die Tatsache, dass es schreibgeschützt ist und nicht sortiert werden kann.
class Solution:
def findDuplicate(self, nums: List[int]) -> int:
low,high = nums[0],nums[nums[0]]
while low != high:
low,high = nums[low],nums[nums[high]]
low = 0
while low != high:
low,high = nums[low],nums[high]
return low
# Runtime: 64 ms, faster than 86.19% of Python3 online submissions for Find the Duplicate Number.
# Memory Usage: 16.4 MB, less than 35.59% of Python3 online submissions for Find the Duplicate Number.
Niedrig ist die Antwort, indem Elemente in "niedrig" bzw. "hoch" vorliegen und die Elemente weiterhin in Zahlen ersetzt werden, indem niedrig durch 0 ersetzt und wiederholt wird.
Es mag als Lösung etwas unbefriedigend sein, aber diesmal ist es bis hierher. Danke für deine harte Arbeit.
Recommended Posts