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.
Leet-Code-Tabelle ab Null Letztes Mal Leet-Code-Tag 14 ab Null "136. Single Number" Grundsätzlich möchte ich die einfache Akzeptanz in absteigender Reihenfolge lösen. Die Problemschwierigkeit ist einfach. Diese Zeit ist auch ein Auszug aus den Top 100 Liked Questions.
Das Problem ist, dass bei einem gegebenen Array alle darin enthaltenen Elemente geleckt werden und, wenn der Wert "0" ist, diese "0" am Ende eingefügt wird. Zu diesem Zeitpunkt besteht das Problem darin, dass die Reihenfolge der Elemente mit anderen Werten als 0 beibehalten werden muss.
Example: Input: [0,1,0,3,12] Output: [1,3,12,0,0]
Ich habe mir zwei Ideen ausgedacht und eine davon umgesetzt. Eine ist, 0 zu verschieben, und die andere ist, einen Wert ungleich Null zu verschieben. Zuerst habe ich das erstere implementiert.
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
for i in range(1,len(nums)+1):
if nums[-i] == 0:
nums.pop(-i)
nums.append(0)
# Runtime: 52 ms, faster than 54.28% of Python3 online submissions for Move Zeroes.
# Memory Usage: 15 MB, less than 5.97% of Python3 online submissions for Move Zeroes.
Elemente werden gelöscht und am Ende mit Pop und Append eingefügt.
Andererseits wurde letzteres wie folgt implementiert.
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
h = -1
for i in range(len(nums)):
if nums[i] != 0:
h += 1
nums[h], nums[i] = nums[i], nums[h]
# Runtime: 52 ms, faster than 54.28% of Python3 online submissions for Move Zeroes.
# Memory Usage: 15 MB, less than 5.97% of Python3 online submissions for Move Zeroes.
Ersetzen Sie zuerst "h" durch -1 und die Anzahl der Elemente durch "i". Und wenn nums [i]
nicht 0 ist, addiere 1 zu h und ersetze nums [h]
durch nums [i]
und nums [i]
durch nums [h]
. Es kann ersetzt werden durch.
Infolgedessen werden auf diese Weise alle Werte ungleich Null an den Anfang sortiert, ohne die Reihenfolge zu stören.
Diesmal habe ich in zwei Schritten darüber nachgedacht. Ich werde hinzufügen, ob es eine bessere Denkweise gibt.
Recommended Posts