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 33 "1. Zwei Summen" ab Null
Grundsätzlich möchte ich die einfache Akzeptanz in absteigender Reihenfolge lösen.
Twitter Ich mache es.
Ich habe dieses Problem zufällig in Java auf YouTube gelöst und beschlossen, es auch zu versuchen.
Der Schwierigkeitsgrad ist einfach!
Das Problem ist, dass wir die natürliche Zahl "numRows" erhalten, also machen Sie ein Pascal-Dreieck wie das im Beispiel.
Input: 5
Output:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
Da entschieden wird, 1 am Anfang und am Ende zu setzen, scheint es gut, einen Zustand vorzubereiten, in dem 1 im Voraus eingefügt wird, und 1 am Ende des Prozesses erneut anzuhängen. Das Problem ist, wie man die Summe der oberen Zahlen berechnet und einfügt, aber es scheint, dass Sie zwei Elemente erhalten und hinzufügen können, indem Sie die for-Schleife zweimal drehen. Dieses Mal habe ich es so geschrieben, dass wenn "numRows" 0 und 1 ist, es als Ausnahme ausgeschlossen wird. Auf diese Weise ist es meiner Meinung nach einfacher zu lesen, da nur die Verarbeitung ab der dritten Stufe geschrieben werden muss.
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if numRows == 0:
return []
elif numRows == 1:
return [[1]]
triangle = [[1]]
for i in range(1,numRows):
row = [1]
for j in range(1,i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
triangle.append(row)
return triangle
# Runtime: 28 ms, faster than 73.84% of Python3 online submissions for Pascal's Triangle.
# Memory Usage: 13.8 MB, less than 7.14% of Python3 online submissions for Pascal's Triangle.
Ja, so sieht es aus.
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