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 wäre 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 82 "392. Is Subsequence" ab Null
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!
102. Binary Tree Level Order Traversal Der Schwierigkeitsgrad ist Mittel. Es ist wie bisher ein Auszug aus der Problemsammlung.
Das Problem besteht darin, bei einem binären Baum einen Algorithmus zu entwerfen, der eine Liste gleicher Werte neben der hierarchischen Reihenfolge der Werte für diesen Knoten zurückgibt. (Das heißt, von links nach rechts, Ebene für Ebene).
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
Ein Beispiel ist so. Ich hoffe du verstehst was ich meine.
Ich habe es mit DFS gelöst.
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
ans,level = [],0
self.dfs(root,level,ans)
return ans
def dfs(self,root,level,ans):
if not root:
return
if len(ans) < level+1:
ans.append([])
ans[level].append(root.val)
self.dfs(root.left,level+1,ans)
self.dfs(root.right,level+1,ans)
# Runtime: 32 ms, faster than 86.02% of Python3 online submissions for Binary Tree Level Order Traversal.
# Memory Usage: 14.2 MB, less than 43.09% of Python3 online submissions for Binary Tree Level Order Traversal.
Es ist eine einfache DFS. Da entschieden wird, es als Liste zurückzugeben, können Sie die Elemente der Hierarchie gut abdecken, wenn Sie die Länge der Liste erhöhen.
Dieses Mal habe ich es mit der gewohnten Tiefenprioritätssuche gelöst, aber es gibt Beispiele für das Lösen mit BFS und Antworten mithilfe von Warteschlangen in der Diskussion, sodass anscheinend die bevorzugte Lösung einer Person angezeigt wird. Das ist ein Problem.
Das war's für diese Zeit. Danke für deine harte Arbeit.
Recommended Posts