Meistern Sie Ihr Coding-Interview im Jahr 2023
Haben Sie sich jemals gefragt, was der Zweck eines Coding-Interviews ist? Nachdem ich viele davon durchgeführt habe, kann ich Ihnen versichern, dass es nicht ums Programmieren geht.
Ihr Interviewer muss verstehen, wie Sie denken! Wie gehen Sie mit dem Unbekannten und der Mehrdeutigkeit um? Sind Sie in der Lage, Ihre Gedanken klar zu äußern? Denken Sie überhaupt über Randfälle nach?
Dies sind die Hauptziele des Interviews. Es sei denn natürlich, Sie werden in bestimmten Kenntnissen wie Algorithmen getestet. In diesem Artikel zeige ich Ihnen einen beispielhaften Ansatz, der ein solches Interview zum Erfolg führen würde.
Aufgabe
„Frage: Eine gültige Feldadresse ist jede nicht negative Ganzzahl, die kleiner oder gleich einem maxField ist. Ein Aussaatbereich ist ein Paar gültiger Feldadressen. Schreiben Sie bei einer Eingabe von maxField und einer Liste von Aussaatbereichen eine Funktion, die die Anzahl der leeren Felder zurückgibt (die, die nie ausgesät wurden).
Beispieleingabe: maxField = 8, Aussaatbereiche = [(4–6), (0–2), (8–8)]
Ausgang: 2 Zoll
Bitten Sie zunächst um eine Minute Zeit, um die Frage durchzulesen. Machen Sie es richtig, denn es ist wichtig zu verstehen, was von uns verlangt wird. Hier haben wir einen ersten Vorbehalt, den viele Leute übersehen. Auch wenn Ihnen die Aufgabe einfach erscheint, gibt es ein paar Unbekannte, die Sie vor der Lösung klären sollten. Fragen Sie Ihren Interviewer laut:
- Was ist die maximale Feldadresse überhaupt?
- Mit wie vielen Bereichen müssen wir rechnen?
- Müssen wir mit ungültigen Eingaben umgehen?
Da wir nun genau wissen, was wir lösen, stoßen wir auf einen zweiten wichtigen Teil. Auch hier geht es nicht allein um die Lösung der Aufgabe selbst; Teilen Sie stattdessen Ihren Denkprozess mit, während Sie es tun.
Lösung
Sehen wir uns eine Beispielsitzung mit dem an, was ein geeigneter Kandidat sagen würde.
„Lassen Sie mich mit einer Funktionssignatur beginnen. Wie gesagt, ich gehe von einer korrekten Eingabe aus.“
def unsownFields(maxField, sowingRanges):
...
Hinweis: Dies ist eine vernünftige Lösung und es ist wichtig, sie zunächst Ihrem Interviewer mitzuteilen. Auf diese Weise sind alle auf dem gleichen Stand.
„Zuerst muss ich alle Bereiche nach ihrem Anfang sortieren“
...
sortedRanges = sorted(sowingRanges)
...
sum = 0
current = 0
for (begin, end) in sortedRanges:
if begin <= current:
current = max(current, end)
„Ansonsten berechnen wir den Leerraum und addieren zum Akkumulator“
...
for (begin, end) in sortedRanges:
if begin <= current:
current = max(current, end)
else:
sum = sum + (begin - current)
current = max(current, end)
for (begin, end) in sortedRanges:
if begin > current:
sum = sum + (begin - current)
current = max(current, end)
sum = sum + (maxField - current)
- Sie achten anhand Ihrer Fragen auf Details.
- Sie denken organisiert über Probleme nach.
Diese Art von Coding-Interviews ist nicht die einzige Option. Manchmal sind umfangreiche Algorithmen- oder Syntaxkenntnisse erforderlich. Im Allgemeinen sind die Tipps, die Sie gerade gelesen haben, universell, egal, was Sie trifft. Sie müssen Unbekanntes auf die gleiche Weise klären, wie Sie dem Interviewer zeigen müssen, dass Sie den Code wie ein Profi verwenden :)
Angesichts der jüngsten Massenentlassungen wünsche ich allen viel Glück. Beifall !

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































