在code challenge面试中确定最优算法的一个技巧

在面试过程中,经常会有所谓的code challenge环节,也是面试官出几道算法题,由面试者在电脑上写出code或者白板上写出伪代码。

通常情况下,都能通过暴力破解法,也就是循环遍历的方式解决问题,但是面试官往往期待的是较优甚至最优的解法。这个时候,如果一时没有把握性较强的答案,可以试着去猜测题目最优解法的时间复杂度。当然,如果你敢问面试官,而面试官也愿意告诉你(也许你长得丰神俊朗),就最好不过了。如果不敢,或者遭到拒绝,可以委婉的打听一下数据的范围,从中推测最优解法的时间复杂度。

比方说,如果数据量的范围在10万以内,那么最优解的时间复杂度不大可能是n2。因为以前计算机跑108次循环通常需要1s,而很多题时限就是1s。因此,这个时候,就应该考虑O(n)或者O(NlogN)的解法。如果给定n在1000以内,那么可以考虑O(n2)的解法。甚至数据量在20以内,可以考虑O(2n)的解法。

你可能感兴趣的:(在code challenge面试中确定最优算法的一个技巧)