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.
Als Gegenmaßnahme scheint eine Website namens Let Code Maßnahmen zu ergreifen.
Eine Site, die algorithmische Leistung trainiert, die Codierungstests standhält, über die früh gesprochen wird.
Ich denke, es ist besser, die Algorithmuskraft eines Menschen zu haben, also werde ich das Problem unregelmäßig lösen und die Methode, die ich damals dachte, als Memo aufschreiben.
Letztes Mal Leet Code Day 32 "437. Path Sum III" ab Null
Grundsätzlich möchte ich die einfache Akzeptanz in absteigender Reihenfolge lösen.
Twitter Ich mache es.
Ich habe nicht über das Problem geschrieben, das ich zuerst lösen würde, als ich mich bei LeetCode registriert habe, also werde ich es jetzt schreiben.
Der Schwierigkeitsgrad ist einfach. Auszug aus den 100 beliebtesten Fragen.
Das Problem ist, dass Sie ein Array von Ganzzahlen und eine Variable target
erhalten, die einen bestimmten Wert enthält. Wählen Sie zwei Ganzzahlen aus dem Array aus, suchen Sie eine Kombination, die mit "Ziel" übereinstimmt, und implementieren Sie eine Funktion, die den Index des Arrays zurückgibt.
Beachten Sie, dass es nur eine Kombination gibt und derselbe Wert nicht zweimal verwendet werden kann.
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
Wenn Sie es beispielsweise in vollständiger Suche schreiben, sieht es so aus.
Die vollständige Suche ist eine sogenannte Überprüfung und führt in den meisten Fällen zu einer schwerwiegenden Leistung, anstatt zu versuchen, alle Muster zu durchsuchen.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(i+1,len(nums)):
ans = nums[i] + nums[j]
if target == ans:
return [i,j]
# Runtime: 6848 ms, faster than 5.01% of Python3 online submissions for Two Sum.
# Memory Usage: 14.6 MB, less than 18.14% of Python3 online submissions for Two Sum.
Es ist spät. Schreiben wir stattdessen mit einer Hash-Map.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hashmap = {}
for i in range(len(nums)):
num = nums[i]
complement = target - num
if num in hashmap:
return [hashmap[num],i]
else:
hashmap[complement] = i
# Runtime: 52 ms, faster than 60.15% of Python3 online submissions for Two Sum.
# Memory Usage: 15.3 MB, less than 5.11% of Python3 online submissions for Two Sum.
Die Geschwindigkeit hat sich erheblich verbessert.
Es ist wichtig zu lernen, wie man eine Sprache schreibt und kurz schreibt, aber nicht nur das, sondern einer der Hauptgründe für das Erlernen der Datenstruktur und der Algorithmen ist, dass Sie die Geschwindigkeit mit nur einer Schreibmethode erheblich ändern können.
Ich werde es hier als Gebot für mich selbst schreiben.
Diese Art zu schreiben ist besser! Ich habe es in dieser Sprache geschrieben! Wenn Sie Fragen haben, können Sie diese gerne kommentieren.
Recommended Posts