我应该告诉采访者我已经知道所提问题的答案了吗?[关闭]


29

在编程面试中,如果有人问我已经知道答案的问题,例如为特定问题提供算法。我应该把这个透露给面试官吗?仅当问题涉及新颖性时,此问题才有意义。

一个示例是“如何颠倒字符串中的每个单词,而不颠倒它们的顺序?”。似乎“应该”知道的较简单的东西(例如我的例子)和较难的更人为的问题之间似乎也存在分歧。

您处理此问题的政策和理由是什么?如果您已经熟悉了问题/脑筋急转弯,除了回答问题外,还应该披露吗?不披露您对该问题的先验知识是否涉及任何道德困境?


2
我很难理解这个问题的重点。如果您知道该问题,则可以回答;如果您不知道,则尝试解决一些合理的问题。您是否应该告诉他们您知道答案,而不是仅仅告诉他们答案?
克里斯,2010年

7
@克里斯。您评论中的最后一个问题实际上是操作人员在这里要问的内容:D
P

1
那应该是建设性的吗?我想不出什么时候告诉面试官“是的,我知道答案”而不告诉他们。
克里斯,2010年

1
我正在等待“ Fishtoaster”给出他的答案。
Mark C 2010年

1
@克里斯-正确; 据我所知,这里的问题归结为“如果您知道脑筋急转弯,对选项1或2是否有优势和/或道德考虑,如果这样,他们如何权衡?” 基本点被埋得很深,并且以明显的主观方式表述,但它似乎很有用(尤其是因为我不知道正确答案是什么,而且看来我应该如此)。海事组织,这是一个问题,需要进行一些轻度编辑以保持清晰度,而不是关闭。
Inaimathi

Answers:


41

我会毫不犹豫地解决这个问题。知道问题的答案并不是什么邪恶的事情,它意味着您之前已经遇到过问题并且知道如何解决。修复它,继续下一个。


8
是的,我认为这很公平。这不像知道答案在作弊。如果有的话,那是经验的标志。我的意思是,不要伪造它,就像假装您只是在没有听说过Quicksort的情况下即刻发明Quicksort(不好的例子,因为每个人都听说过Quicksort,但您知道我的意思)。请立即回答。很明显,您已经熟悉了这个问题,但是没有必要这么明确地说,并且是否可以将任何批评批评采访员挑出一个非原创性问题的想法当作是话。
Tim Goodman 2010年

26

我仍然会回答这个问题。我经常采访程序员。我对您可以解决问题(除非您根本无法解决)的兴趣不大,如何解决问题更感兴趣。

我在面试中问了很多很多..以及很多烦人的小问题,这些问题是专门设计的(并随着时间的流逝而完善),使我对您的实际优势和您的简历有很好的理解。我会尽我所能带领您进行一些主观的开玩笑,然后为您解决越来越棘手的问题。

弗兰克(Frank)为例,FizzBu​​zz,我想听听的最后一件事是:“哦,是的,我知道如何使用模运算符...”如果我在采访您,我知道。我可能想看看您的大脑换档有多快,或者我想测试一下您执行一项看起来平凡而又愚蠢的作业的能力。关键是,我不仅测试您解决问题的能力。

我可以用数百个活动部件制作鼠标陷阱。如果一家公司从事捕鼠业务..那么... :)


5
如果被访者只知道答案,您将不会发现被访者是如何解决问题的。
P Shved

3
@Pavel:当然可以,但他们可以问他们“用这种方法而不是用这种方法有什么好处?” 这样一来,您可以查看他们是否真正理解了答案背后的思考过程,或者只是记住了答案而没有理解原因。
Tim Goodman 2010年

@Tim,所以如果您想问“如何找出链表是否在O(1)内存中有循环”的问题,我就知道答案了(哎呀,我解决了很多此类问题),您的后续问题是?
P Shved

蒂姆,我很想看着你面试某人(或者面试我,哈哈),只是为了学习。
Mark C 2010年

1
@Pavel,我可能会使问题复杂化,并向列表中介绍多位作者。如果您花了一点时间考虑一下,我可能会问您关于无锁方法的意见,然后再次问同样的问题,想知道O(1)是否转到O(log n)。如果您完全把我赶出水面,而我们负担得起,我将确保您成为我的老板。很抱歉造成延迟,最近出现的“橙色信封令人讨厌”现象一直很奇怪。
Tim Post

10

当坐在面试官席上时,我已经看到很多人说“哦,我听说过这个”,然后努力地想起或重新制定解决方案。因此,在很多情况下,先知并没有给您带来太多优势。我建议告诉他们您以前听过,并提出解决方案。如果这对您来说太简单了,他们会给您另一个问题,并感谢您的诚实。


8

我赞成开放和诚实的沟通,所以我肯定会说我知道这个问题以及其中的技巧。

为了获得更多的荣誉,我想您可以说:“好,这是其他所有人的做法,但让我们看看是否有其他方法。” 或者,您可以通过其他方式解构该问题,并说明为什么人们喜欢该问题,以及该问题试图让您看到什么。

(编辑:从其他人对此帖子的评论中删除了对FizzBu​​zz的引用。)


4
FizzBu​​zz 与保理无关
zvrba 2010年

2
我也认为您可能会错过FizzBu​​zz的要点。
Tim Post

那么,如果不避免使用n mod 15的情况,那又是什么呢?我之所以说“分解”,是因为我可以想象有人用另外两个素数表示“ Fizz”和“ Buzz”,并认为他们很聪明。重点仍然是,您使用的N个质数(对于FizzBu​​zzBazz)可以整除的数字也可以通过这些质数的任何乘积来整除。
Frank Shearar 2010年

1
完全无关紧要,因为3 * 5不需要在FizzBu​​zz实现中专门处理。
Joren

很公平; 我见过的解决方案做了,但是没有,你不具备处理3 * 5特别。
Frank Shearar 2010年

6

作为一名面试官,我并不是要问这个问题,看看您是否知道棘手的鸡蛋和鸡蛋问题的答案。相反,我希望了解您如何解决问题以找到答案。因此,通常很容易分辨出知道答案和得出答案之间的区别(除非,因为被访者采取行动才能得出答案!)


3

根据我的经验,对于大多数技术面试而言,受访者对您的解决方案,您如何提出它以及如何对其进行解释非常感兴趣,而不是您之前是否曾听过相同的话。除非它是涉及“技巧”的“难题”问题之一,否则除非事先能够自己解决问题,否则事先了解该问题并不能真正为您提供决定性的优势。

对于一个非常重要的问题,提出的问题实际上可能是众所周知的问题,或者可以简化为一个问题。如果有人问在图中找到两个节点之间最短路径的方法,您是否假装不知道BFS / Dijkstra?恕我直言,对于某些问题,隐藏您知道自己的东西的事实甚至可能适得其反。


+1技巧问题。如果您已经知道其中一项的答案,则可以这样说。提出这样一个问题的目的是观察各部分何时就位,以及是否已经知道答案是不可能的。
Guffa

3

我认为告诉采访者仅适用于那些愚蠢的“陷阱”问题,例如圆形沙井和其他类似的东西。提出问题后,一旦知道答案就很明显了。

反转字符串等,没有明显的“陷阱”解决方案,如果知道的话,您可以在3秒钟内进行解释。


1

“知道”答案不是重点。以一种使面试官有机会了解您所给出答案的方式进行沟通是。(当然,面试官知道很多答案,但是正如我所说,这不是重点。)

因此,我将尝试将答案框架化为合理的讲义或幽默的框架,以便面试官可以了解我的想法和功能,或者不了解。

例如,对于所有人(对面试官来说都是有益的),将提出的问题置于完全不同的上下文中可能很有趣,这表明即使手头的问题看起来相似,解决方案也无法在新的上下文中起作用。我认为这里的艺术是找到一个与问题有某种联系的上下文,在该上下文中第一个答案的解决方案不起作用,然后提出面试官可能会细看(或嘲笑)的引人入胜的解决方案。


0

那有什么选择呢?如果您告诉面试官您知道所提出问题的答案,并希望他们仅向您提供您不知道答案的问题,那会发生什么?要么

  1. 他们会尊重您,因为您只会尝试回答从未见过/未曾听到的问题,
  2. 他们将被您的才华所震撼-毕竟,您已经知道他们提出的问题的答案-并将立即为您提供工作
  3. 他们会认为您是个聪明人,因为您似乎已经知道一切-只是问问您!
  4. 他们会认为您是傻瓜,因为您不知道什么时候进展顺利。

我怀疑选项(1)和(2)不会发生-叫我愤世嫉俗的先生。因此,您要么是笨蛋,要么是聪明人,这两者都不会让您找到工作。嘿,祝你好运!

正如其他人指出的那样,面试的重点是通过回答您提出的任何问题,为您提供展示自己的技术水平的机会。这种方式意味着您已经被问到的问题对您有利。如果您坚持要破坏自己,请继续-没有人会阻止您-但我建议您不要这样做。

分享并享受。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.