作为程序员,在面试过程中都需要经历一次又一次编程的考验,这其中有何技巧可言?又该如何通关成功拿到心仪的 offer 呢?

作者 | Daily Coding Problem

译者 | 苏本如,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

关于编程面试中遇到的困难和算法问题,我们已经讨论了很多,但是首先在面试环境中让自己保持舒适本身就是一种技巧。

除了提出正确的解决方案之外,在每次编程面试中,你还需要做一些额外的事情。

  1. 要求澄清问题。

  2. 运行你的算法并用测试用例进行验证。

  3. 主动提供算法的时间复杂度和空间复杂度信息。

很多时候,应聘者会立即全神贯注于编写代码,而忽略了做上面的一件或多件事情,这会对他们的面试结果产生负面影响。面试官肯定会发掘出应聘者编写正确算法的能力,但他们也会基于沟通能力和验证能力等其他技能来评估应聘者。

要求澄清问题

在开始编写代码之前,一个好的应聘者总是会问清楚面试官提出的问题。这有三个主要目的:

  • 它缩小了问题的范围。例如,也许你会问面试官,“这个数组中的所有整数都是正的吗?”。如果答案是肯定的,那么你就不必考虑整个负整数空间,这可能使问题更容易解决。

  • 它向面试官表明你正在积极考虑边缘案例。面试是为了证明你有能力进行批判性和周密的思考,同样也是为了证明你的原始编码能力。

  • 它允许你和面试官就问题的理解达成一致。因为有些时候,我给了应聘者一个问题,他们提出的解决方案却稍有偏差。所以在开始之前,确保你和面试官对你要解决的问题的理解一致。

验证算法

在面试过程中,仅仅在黑板上写好代码并称之为“完成”是不够的。一个高质量的应聘者总是会用边缘案例和例子逐步检查他们的算法以找出任何错误。这是几乎每个面试官都希望看到的关键步骤。

在验证算法时,尽可能周密。下面是一些提示:

  • 在算法的每个步骤,写出存储在任何数据结构或变量中的内容。

  • 如果执行for-或while循环,请确保运行算法直到完成,以捕获任何“off-by-one”错误或终止错误。

  • 选择non-trivial的测试用例。可能是该算法适用于特定的输入集,但不适用于更复杂的输入集。尝试提出破坏算法的测试用例。

理想情况下,你写的算法没有任何缺陷,但现实中更可能发生的是,你会发现一些小错误。通过修改算法来修复这些错误,并再次运行几个测试用例,将能很好地反映出你的代码调试能力。

提供算法的时间复杂度和空间复杂度

几乎每个面试官都会关心算法的时间复杂度和空间复杂度。主动提供这些信息,而不是等待他们询问,可以向面试官表明你熟悉这些概念,并且可以轻松计算这些信息。

需要牢记的一些事情:

  • 当开始考虑一个问题时,试着想想绝对的最好和最坏情形时的复杂度是什么。例如,要在未排序的列表中查找某个元素,我们知道必须至少查看列表中的每个元素一次,所以这个算法的复杂度至少是O(n)。

  • 试着用“压力测试”测算一下你的算法的复杂度,尤其是当它依赖于两个或更多的变量时。例如,如果你的算法执行次数是O(n*k):如果k非常小会发生什么?当k接近n时会发生什么?有时,你会发现一个算法对于特定的n和k值是最优的,另一个算法对于不同的n和k值是最优的。

  • 对于内存限制,如果你确实需要跟踪数据结构中的所有值,请尝试解释。此外,还要认识到一个事实,即不同编码语言中的某些函数可能会使用额外的内存。一个很好的例子是在Python中进行列表切片,这会创建一个新的列表(可能会产生另一个O(n)内存使用)。

编码面试是很困难的,精通算法和编码问题并不能保证总是能够通过面试。幸运的是,有了这三个技巧,你可以更好地了解如何进行编程面试。祝你好运!

你正在面试编程工作吗,还是只是喜欢有趣的编程问题?查看我们的时事通讯-Daily Coding Problem,你就能每天在你的收件箱中收到一个关于编程的问题。

原文: https://www.dailycodingproblem.com/blog/tips-to-ace-your-coding-interview/

本文为CSDN翻译,转载请注明来源出处。

【End】

面试Python工程师会有哪些问题?需要如何准备?

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

热 文 推 荐 

程序员的遗憾:忽视数学必定后悔!

AI芯片技术“分叉”百害无利,国产芯片大有可为

从ACM班、百度到亚马逊,深度学习大牛李沐的开挂人生

《乐队的夏天》很酷?程序员式的摇滚才燃爆了!

☞比特币勒索出新招,佳能单反被黑客攻破,白帽却利用一个漏洞赎回了照片,这波操作简直了……

常见的Hadoop十大应用误解

☞亚马逊首席科学家李沐亲授「深度学习实训营」

☞NLP为RPA带来了什么价值?

边看边用!这本 Python 3.6 的书火爆了 IT 圈!

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

9 大技巧拯救你的编程面试!相关推荐

  1. 编程面试过程中最常见的10大算法

    编程面试过程中最常见的10大算法 编程语言:C/C++ 1. 字符串 如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法. toCharArray() // 获得字符串对应的char数组 A ...

  2. 编程面试的10大算法概念汇总

    编程面试的10大算法概念汇总 嘿,第一次翻译文章,在ProgramCreek看到的,原文章名为Top 10 Algorithms for Coding Interview, 对于我这个明年即将直奔BA ...

  3. 程序员面试谈薪资的6大技巧

    程序员面试谈薪资的6大技巧 提起薪资,我们作为求职者都想多要点,作为程序开发者 更需要一个好的敲门,身怀绝技,  如果不会谈薪 ,那就不就亏大了吗? 原文来自程序人生: http://gad.qq.c ...

  4. mastercam后处理升级_MasterCam软件后处理技巧大揭秘,做数控编程的都收藏了

    mastercam软件后处理技巧mastercam软件是一款很优秀的cam软件,市场占有率很高.也是数控加工首先的计算机自动生成程序的软件.很重要的一点是,它的后处理是开放式的. 下面就谈谈它的后处理 ...

  5. 程序员编程面试取胜的8个技巧

    程序员编程面试取胜的8个技巧 译文链接:http://www.codeceo.com/article/8-tips-to-crack-a-coding-interview.html 英文原文:8 Ti ...

  6. 动态规划编程面试_面试的前25大动态编程问题

    动态规划编程面试 Dynamic programming is one of the most asked paradigms in any product-based company intervi ...

  7. java面试算法总结_java编程面试过程中常见的10大算法概念汇总

    以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: ...

  8. 鸿钧老祖 数据结构笔记01:编程面试过程中常见的10大算法(java)

    以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: ...

  9. 独家 | 在Python编程面试前需要学会的10个算法(附代码)

    作者:AnBento 翻译:陈超 校对:陈丹 本文长度为3300字,建议阅读10+分钟 本文为大家介绍了最近在Python编程面试中反复出现的10个基础算法问题,并且给出了相应的解答过程. Photo ...

最新文章

  1. ZooKeeper客户端地址列表的随机原理
  2. 【响应式Web前端设计】Register Demo
  3. skywalking 安装_如何使用skywalking 进行全链路监控
  4. vb net 模拟 ctrl+c_8款优秀的.NET开发工具,收藏了
  5. 丢失MySQL root 密码?
  6. rdd分片 spark_大数据面试题(Spark(一))
  7. HTTP的⼏种请求⽅法及⽤途小谈(面试)
  8. 大规模业务技术架构设计与战术(架构师必看)
  9. Spring中各个jar包的作用
  10. cad计算机功能键,【答疑】Auto CAD2014计算器快捷键是什么呢?? - 视频教程线上学...
  11. 计算机无法连接网络打印机,网络打印机无法连接怎么办 网络打印机无法连接教程【详解】...
  12. java 时间段求并集_java多个时间段 互相有交集求并集的问题
  13. 什么是编程?为什么要编程?
  14. 「面试」缓存知识点大总结
  15. 基于QuartusII的verilog数字时钟设计
  16. php家居门户源码,家居装修门户模板源码discuz模板 php家居装修网论坛源码
  17. 都在发做圣诞树,我来点不一样的,用python给对象戴一顶圣诞帽
  18. MetaMask钱包登录Ganache-cli内的账户,出现无法获取链 IC,您的 RPC URL 地址是正确的么?问题
  19. Spring Boot Post接口数据加解密
  20. MIME类型 swfupload 及 php

热门文章

  1. 各机器学习平台视频建模功能汇总
  2. nginx 405 not allowed问题解决方法
  3. Fuel 9.0安装Openstack网络验证失败解决
  4. [C] 从文件读取数据
  5. [Ubuntu] apt 的用法
  6. 实时视频流(url)——延时显示
  7. 记录——《C Primer Plus (第五版)》第十章编程练习第一题
  8. Qt快速绘制像素点的处理方法
  9. 内置炊具行业调研报告 - 市场现状分析与发展前景预测
  10. 沥青防水卷材行业调研报告 - 市场现状分析与发展前景预测