Obwohl in der Frage gesagt wurde, dass n ein 32-Bit-Int sein muss, wurde nicht gesagt, dass der Parameter oder der Rückgabetyp ein 32-Bit-Int sein muss. Dies sollte in Java kompilierbar sein - in C könnte man das != 0 weglassen.
private final long MAGIC_BIT=1<<38;
long f(long n) {
return n & MAGIC_BIT != 0 ? -(n & !MAGIC_BIT) : n | MAGIC_BIT;
}
bearbeiten:
Das ist eigentlich eine sehr gute Frage für ein Vorstellungsgespräch. Die besten Fragen sind die, die schwer oder gar nicht zu beantworten sind, weil sie die Leute zwingen, darüber nachzudenken, und man kann sie beobachten und darauf achten:
- Geben sie einfach auf?
- Sagen sie, es sei dumm?
- Versuchen sie einzigartige Ansätze?
- Kommunizieren sie mit Ihnen, während sie an dem Problem arbeiten?
- Fordern sie eine weitere Verfeinerung der Anforderungen?
usw.
Beantworten Sie niemals nur Verhaltensfragen, es sei denn, Sie haben eine SEHR GUTE Antwort. Seien Sie immer freundlich und versuchen Sie, den Fragesteller einzubeziehen. Lassen Sie sich nicht frustrieren und geben Sie nicht vorzeitig auf! Wenn Sie wirklich nicht weiterkommen, versuchen Sie etwas völlig Illegales, das funktionieren könnte, und Sie erhalten fast die volle Punktzahl.
6 Stimmen
Um welche Stelle ging es bei diesem Vorstellungsgespräch?