请教关于面试中的问题

avatar地里匿名用户8LX9G
787
0
新人第一次发帖,希望各路大佬不吝赐教。文字表达有问题的地方,还望批评斧正。情景是这样的, 面试虽然一轮45分钟,真正用于做题的时间可能就20~30分钟。我以LEETCODE 妖久巴为例(题目就是这么简单):
当我一看到这题时,马上想到两种方法:
1.
class Solution:
def maxProfit(self, prices: List[int]) -> int:
ans = 0
minPrices = prices[0]
for i in range(1, len(prices)):
ans = max(prices[i]-minPrices, ans)
minPrices = min(minPrices, prices[i])
return ans


2.
class Solution:
def maxProfit(self, prices: List[int]) -> int:
ans = 0
for i in range(0, len(prices)):
for j in range(i+1, len(prices)):
ans = max(ans, prices[j]-prices[i])
return ans


显然,第一种方法更好。但意料不到的情况来了,我跟面试官解释第一种方法,而他听不懂(虽然我英语不行,但这么简单我觉得我解释得够清楚了)。并且我发现面试官是真的一脸懵逼,不是装作听不懂而要求我表达得更好。我甚至有点怀疑面试官是第一次看到这道题,因为我看他的样子是在很认真的思考且很疑惑的样子。但我很疑惑,这么经典简单的题他不可能第一次见到阿。

而我的问题是面试过程种遇到这样的情况怎么处理?

我考虑过以下的方法:
1. 先给第二种,再给第一种。 而问题是时间可能不够,因为毕竟面试跟平时刷题真的有很大区别。刷题时看到这样的题目可能几分钟就能搞掂,代码一些,test一run, OK。面试不一样,你要花时间一行一行代码解释给面试官听,还要手动run test,比如记录每轮的结果等等等。感觉时间是真的不够。
2. 假如考虑到时间可能真的不够(我相信有人会遇到这样情况,就是面试一开始首先是BQ,然后一半的时间就没)。那么我只给第二种方法。而最大的问题是这不是最优解。感觉现在面试给这样的答案无疑是想收"no hire"。

同时,我也很想知道如果面试官站在我的角度的话,他们会怎么做?
我发现面试时花费最多时间的不是你思考这题怎么做,代码怎么写,而是解释。。。

我首先得承认:我能力不行(垃圾)。
最后,对所有的批评和建议,我都表示衷心的感谢。
  • 1
0条回复