Ist es möglich (erwartet), dass eine Person den Algorithmus herausfindet (nachdem sie ihn noch nie gesehen hat), wenn sie bei einem Interview gefragt wird? Welche anderen Probleme haben ebenso interessante Lösungen?
Bearbeiten: Aufgrund der Verwirrung des tatsächlichen Algorithmus, auf den ich mich beziehe, handelt es sich um den Floyd-Zyklusfindungsalgorithmus , auch bekannt als Schildkröten- und Hasenalgorithmus.
interview
algorithms
Picakhu
quelle
quelle
Antworten:
Nun, nichts ist unmöglich, wie sie es sagen.
Wenn Sie jedoch noch nie von Dijkstra oder Flloyd gehört haben, ist es nahezu unmöglich, dies in einem einzigen Interview herauszufinden.
Die Menschen verbringen ein ganzes Leben damit, einen einzigen Algorithmus zu entwickeln, nur für den Fall, dass Sie sich nicht sicher sind.
quelle
Nein, ist es nicht. Es hat Jahre gedauert, bis die größten Mathematiker / Informatiker ihrer Zeit diese Algorithmen formuliert haben. Unter Druck werden Sie nicht in 2 Minuten dasselbe tun.
Für den zweiten Teil Ihrer Frage ... Nun, ich weiß nicht wirklich, was Sie hier für interessant halten. Wenn seine Algorithmen, Datenstrukturen und Kombinatorik Ihnen gefallen, lesen Sie einfach "Die Kunst oder Computerprogrammierung", es wird nicht viel besser als das.
quelle
Die Interviewer stellen möglicherweise eine unmögliche oder unsinnige Frage, um Ihre Reaktionen zu sehen.
Sie wollen nur Ihre Herangehensweise an Probleme verstehen, nicht unbedingt das Wissen selbst.
Es gibt so viele Informationen, dass die Google-Kompetenz und das Konsumieren von Informationen aus einem Feuerwehrschlauch wichtig sind.
quelle
Wie @ fanatic23 sagte, wenn Sie noch nie von Dijsktra gehört haben, ist es ziemlich schwierig, Floyds Algorithmus herauszufinden. Wenn Sie jedoch einige Graphen studiert haben, ist Floyd einer der grundlegenden Algorithmen. Wenn Sie nach Stellen suchen, für die Sie möglicherweise über kompetente algorithmische Fähigkeiten verfügen, empfehle ich Ihnen, zumindest einige Algorithmen zu lesen, die bei der Verwendung von Grafiken als wichtig erachtet werden:
Mit diesen 4 Themen können Sie in einem Interview durch alle grundlegenden bis mittleren Fragen navigieren.
quelle
Da es sich um eine Interviewfrage handelt, müssen Sie sich immer zuerst die wichtigste Frage stellen:
Offensichtlich wird fast niemand (und schon gar kein prototypischer Kandidat) in der Lage sein, Arbeiten auszuführen, die brillante Wissenschaftler Jahre innerhalb der Zeitbeschränkungen eines Interviews in Anspruch genommen haben. Das erwarten sie also nicht von Ihnen.
Was kann der Arbeitgeber noch erwarten?
Möglicherweise kennen Sie den Algorithmus bereits. Das ist einfach und langweilig. Sie können es einfach sagen und höchstwahrscheinlich wird das Thema gewechselt, da nicht viel mehr über sich selbst zu lernen ist (aus Sicht des Arbeitgebers).
Möglicherweise kennen Sie den Algorithmus nicht. Dies ist tatsächlich der typische Zustand des Kandidaten, und wenn dies erwartet wird, wie sollte das Ergebnis aussehen? Wenn Sie hier die Perspektive des Unternehmens betrachten, werden Sie feststellen, dass es höchstwahrscheinlich keine gute Sache ist, wenn ein Kandidat nicht in der Lage ist, das Offensichtliche zu sagen: Ich kenne diesen Algorithmus nicht. Wenn Sie anfangen, vage Sätze zu geben und hier über das eigentliche Problem sprechen, werden Sie einen schlechten Eindruck hinterlassen. Der Hauptzweck einer solchen Frage besteht also nicht darin, von Ihnen zu erwarten, dass Sie sie beantworten können, sondern Ihre Reaktion zu testen, wenn Sie auf Dinge stoßen, die Sie nicht kennen.
Sie kennen den Algorithmus vielleicht nicht, aber ... um auf die ursprüngliche Frage oben zurückzukommen: Wie können Sie es besser machen? Möglicherweise kennen Sie ähnliche Algorithmen. Erklären Sie daher die erkannten Ähnlichkeiten (z. B. verwendet Floyds Tortoise + Hare-Algorithmus einen ähnlichen Ansatz wie der Polard-Rho-Algorithmus). Möglicherweise verfügen Sie über beeindruckende Fähigkeiten zum Lesen / Verstehen von Code usw. Natürlich ist dieser Teil der schwierigste, aber andererseits ist er nur verfügbar, wenn Sie tatsächlich besser als der durchschnittliche Kandidat sind, was es per Definition einfacher macht.
quelle
Ist es möglich? Das hängt vom Algorithmus und vom Kandidaten ab. Ich würde sagen, dass die überwiegende Mehrheit der Kandidaten Schwierigkeiten haben würde, so etwas tatsächlich zu tun. (Wenn diese Probleme so einfach wären, warum sollte jemand berühmt dafür sein, sie gelöst zu haben?)
Wird es erwartet? Das hängt von den Schwächen des Interviewers und ihren Erwartungen an die Kandidaten ab. Ich würde sagen, wenn sie wirklich erwarten, dass Kandidaten in einem Interview in der Lage sind, so etwas zu tun , müssen sie viele Kandidaten interviewen. Eine solche Frage wird eher gestellt, um zu sehen, wie der Kandidat unter Druck arbeitet / denkt.
Ich werde das nicht beantworten. Eher werde ich das sagen:
Die Wahrscheinlichkeit, dass Sie (als Kandidat) dies tun, ist für einen typischen Job gering. Wenn Sie sich jedoch für einen speziellen IT-Job bewerben, bei dem bestimmte Algorithmen unbedingt bekannt sein müssen, werden Sie möglicherweise gebeten, diese zu erläutern.
Es macht wenig Sinn zu lernen, Algorithmen abzuleiten , falls Sie dazu aufgefordert werden. (Oder "betrügen", indem Sie den Algorithmus vorher kennen.) Wenn Sie tatsächlich dazu aufgefordert werden, versuchen Sie Ihr Bestes ... in dem Wissen, dass die meisten anderen Kandidaten wahrscheinlich ebenfalls Probleme haben.
Es ist nützlich, eine Reihe von Algorithmen zu kennen oder zumindest zu kennen , da sie sich bei Ihrer Arbeit als nützlich erweisen können. Dies hängt jedoch stark vom IT-Bereich ab, in dem Sie arbeiten werden.
quelle