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 35 "160. Schnittpunkt zweier verknüpfter Listen" ab Null
Grundsätzlich möchte ich die einfache Akzeptanz in absteigender Reihenfolge lösen.
Twitter Ich mache es.
Der Schwierigkeitsgrad ist einfach. Dies ist die letzte einfache Frage in den Top 100 der beliebtesten Fragen.
Das Problem besteht darin, die MinStack-Klasse mit den Funktionen push, pop, top und getMin zu implementieren.
Die Spezifikationen jeder Funktion sind wie folgt.
push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. top() -- Get the top element. getMin() -- Retrieve the minimum element in the stack.
Input ["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]]
Output [null,null,null,null,-3,null,0,-2]
Explanation MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); // return -3 minStack.pop(); minStack.top(); // return 0 minStack.getMin(); // return -2
Das ist alles für das Anwendungsbeispiel. Ich denke, viele Programmierer kennen Stack, deshalb werde ich es hier nicht anfassen.
class MinStack:
def __init__(self):
"""
initialize your data structure here.
"""
self.stack = []
def push(self, x: int) -> None:
minElement = self.getMin()
if minElement == None or x < minElement:
minElement = x
self.stack.append((x,minElement))
def pop(self) -> None:
self.stack.pop()
def top(self) -> int:
if len(self.stack) == 0:
return None
else:
return self.stack[len(self.stack) - 1][0]
def getMin(self) -> int:
if len(self.stack) == 0:
return None
else:
return self.stack[len(self.stack) - 1][1]
# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()
# Runtime: 72 ms, faster than 38.62% of Python3 online submissions for Min Stack.
# Memory Usage: 17.9 MB, less than 5.36% of Python3 online submissions for Min Stack.
Ich denke, das Schneiden ist praktisch, aber es scheint, dass es in ähnlicher Weise wie üblich in anderen Sprachen implementiert wird ... Es ist trotzdem interessant, Stack zu implementieren, daher empfehle ich, ihn zu schreiben.
Diesmal sieht es so aus. Danke für deine harte Arbeit.
Recommended Posts