Google、MS和BAT教给我的面试真谛

大家好呀,我是「小鹿鹿鹿」,我又来啦~~趁大家还有依稀印象赶紧乘热打铁~~这次聊一聊关于面试的一些小想法,希望和大家交流交流~~

虽然资历尚浅,但是也面过不少试,有Google、微软等外企大佬,也有BAT等国内巨头,工作的这几年也有幸当过几次面试官,小鹿这里呢就结合自己的亲身经历,聊一聊我对面试的一些小想法(*^▽^*)

我们面试是在面什么?


  • technology 

  • thinking

  • communication

这是小鹿自己总(意)结(淫)地面试的主要考核内容。首先呢,毋庸置疑,我们面试肯定是要检验候选人是否有过硬的专业技术算法、项目经历,不同的公司、不同的职位有不同的侧重,但是具体的专业技术的考核肯定是逃不开的。

可是除此之外呢?除了显式的技术考核以外,还有很多往往被我们忽略的隐形考核。小鹿觉得主要是思维方式交流能力这两点。并且这部分反而更需要我们广大的程序员小哥哥们多多注意。不要让交流的问题,妨碍面试官发现你的思维之光,阻碍你展示出自己超强的专业素养呢(ノ≧∀≦)ノ!

面试实际上是工作的一个简单模拟。

一场面试,面试官其实只需要得到一个问题的答案,那就是和你一起工作是否开心。关于这个问题,有的外企会直接作为面试记录。虽然我们国内的企业不会这么直接,但是小鹿觉得这确实是面试中最直击灵魂的拷问。

面试的正确姿势


面试实际上是通过提出问题、回答问题,在你来我往中进行交流,模拟实际工作的情形。那么当面试官抛出话碴,提出一个问题之后,我们应该怎么更好的完成我们之间的对话呢?

小鹿以为,不管是具体的算法还是项目问题,面试官向你抛出的问题往往是开放的,没有灰常灰常清晰的定义、十分确定的唯一解的。针对这种情况,小鹿觉得切忌!!

不要直接给一个确切的回答,即使你的回答大概率是面试官心中想要的答案。

首先,我们可以尝试着去复述(当然不是一字不变的重复),用自己理解的语言去确认是否清楚的理解了面试官的问题。其次,这个问题可能存在一些没有定义清楚的模糊地带,一定要逐个向面试官去确认。当问题已经比较清晰的情况下,我们可以提出一个解决方案,这个方案可以是非常naive但是只要确实可行就ok啦。

大胆说出自己觉得可行的方案,即使这个方法看起来很简(智)单(障)。

能解决问题的方法就是好方法( ̄▽ ̄)/

当然啦,实际中我们需要精益求精寻求更优的解决方案。但是大家不用太有压力,我们可以和面试官一起,沟通交流,碰撞思维的火花,共同讨论出一个较优的方案。最后实现(写code),测试,over~~

所以,小鹿划重点啦,面试的正确姿(步)势(骤)应该是这个样子滴~~

  • step 1: 正确的理解问题并复述 

  • step 2: 清晰问题

  • step 3: 提出一个可行的解决方案(不一定是最优的)

  • step 4: 讨论出一个较优方案

  • step 5: 执行实现

  • step 6: 测试

实战


读到这里是不是觉得小鹿就是一个纯理论派(差点意思????️),那么我们就以小鹿最近的一次面试来实操一下吧!

Q1: 寻找三角数组的最大值

满足先单调递增再单调下降的array为三角数组,如[1,2,3,2,1].

  • step 1: 复述 (内心OS...这道题怎么这么简单,我有没有正确理解题意呢-O-)

  • step 2: 数组为空怎么办呐(╯﹏╰)b?

  • step 3: 可行方案遍历时间复杂度为O(n),空间复杂度为O(1)

  • step 4: 更优方案二分查找时间复杂度为O(logn),空间复杂度为O(1)

  • step 5: coding

  • step 6: test

Q2: 判断一个数组是否是三角数组

  • step 1: 复述(小鹿此处就省略啦)

  • step2: 数组为空?长度小于等于2的特殊情况?

    ????试官明确边界,只有长度大于等于3的数组才可能是三角数组????

  • step 3: 可行方案遍历

    遍历数组,如果数组只有一个拐点Xi-1<Xi且Xi > Xi+1,则为三角数组。时间复杂度为O(n),空间复杂度为O(1)。

  • step 4: 更优方案?

    请勇敢的说出没有更优方案,没有比O(n)更高效的算法啦 (▼へ▼メ)

Q3:当数组非常大,无法直接放入内存时,如何判断其是否是三角数组?

考核大家思维能力的关键时刻到啦!

首先我们可以提出一个大致的解决思路。小鹿有一个不成熟的小想法,可以用map reduce,把数组进行切分,逐个处理每一小部分数组,再整合判断整个数组是否是三角数组。

这个时候呢,我们的解决方案并不完整,比如如何分割数组,map和reduce到底怎么定义还不清晰。但是呢没有关系,我们先抛出自己idea,然后根据面试官的反馈,确定我们的方向是否正确(ง •_•)ง

当我们得到面试官的肯定后,就需要进一步细化这个solution啦。

三角数组有且仅有一个拐点。直接切分数组(比如n等分),map分别数每个切分数组的拐点数,reduce对所有拐点数求和,如果拐点数为1则为三角数组。

             

但是??如果切分的位置正好遇到拐点怎么办呢?

       

不要害羞,说出自己的思考过程,善良的面试官会给你发(提)糖(示)。

????我们可以有重叠的切分,这样就能保证万无一失啦( ̄▽ ̄)/????

请看图,把数组划分为红、黄、蓝三个部分,其中重叠部分变成了橙色和绿色。这样就能保证即使把数组切分,也不损失整个数组的信息。

        

最后的总结


当我们面试大厂的时候,保持平常心,把面试当成和同学、同事的交流,是非常重要的。在自身实力一定的情况下,不同的面试方式可能产生不同的面试结果。大家不妨也回顾总结一下自己的面试心得,有好的面试技巧可以在评论区留言,和大家一起交流学习哦~~~

希望大家面无不胜,逢考必过( ̄︶ ̄)↗ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AAAI 2018 论文 | 蚂蚁金服公开最新基于笔画的中文词向量算法

导读&#xff1a;词向量算法是自然语言处理领域的基础算法&#xff0c;在序列标注、问答系统和机器翻译等诸多任务中都发挥了重要作用。词向量算法最早由谷歌在2013年提出的word2vec&#xff0c;在接下来的几年里&#xff0c;该算法也经历不断的改进&#xff0c;但大多是仅适用…

甲子光年 | 为什么知识图谱终于火了?

本文转载自公众号甲子光年。如果知识是人类进步的阶梯&#xff0c;知识图谱就是AI进步的阶梯。作者&#xff5c;金丝猴编辑&#xff5c;甲小姐设计&#xff5c;孙佳栋微信&#xff5c;甲子光年 (ID:jazzyear)“知识图谱”相较于AI其他分支&#xff0c;似乎是最后一个热起来的赛…

Java多线程并发编程

一、线程池 1.1、什么是线程池 线程池是一种多线程的处理方式&#xff0c;利用已有线程对象继续服务新的任务&#xff08;按照一定的执行策略&#xff09;&#xff0c;而不是频繁地创建销毁线程对象&#xff0c;由此提高服务的吞吐能力&#xff0c;减少CPU的闲置时间。具体组成…

Step-by-step to Transformer:深入解析工作原理(以Pytorch机器翻译为例)

大家好&#xff0c;我是青青山螺应如是&#xff0c;大家可以叫我青青&#xff0c;工作之余是一名独立摄影师。喜欢美食、旅行、看展&#xff0c;偶尔整理下NLP学习笔记&#xff0c;不管技术文还是生活随感&#xff0c;都会分享本人摄影作品&#xff0c;希望文艺的技术青年能够喜…

知识图谱与智能问答基础理解

什么是知识图谱&#xff1f; 知识图谱本质上是语义网络&#xff0c;是一种基于图的数据结构&#xff0c;由节点(Point)和边(Edge)组成。在知识图谱里&#xff0c;每个节点表示现实世界中存在的“实体”&#xff0c;每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的…

鲍捷 | 知识图谱从 0 级到 10 级简化版

本文转载自公众号&#xff1a;文因学堂。文因学以前写过几个进阶指南&#xff0c;可能都太难&#xff0c;不接地气。这里重新写一个更实事求是、更便于工程落地的版本0级&#xff1a;掌握正则表达式、SQL、JSON和一门支持if-then-else的高级语言 —— 是的&#xff0c;这些不是…

Java并发优化思路

一、并发优化 1.1、Java高并发包所采用的几个机制 &#xff08;1&#xff09;、CAS&#xff08;乐观操作&#xff09; jdk5以前采用synchronized&#xff0c;对共享区域进行同步操作&#xff0c;synchronized是重的操作&#xff0c;在高并发情况下&#xff0c;会引起线…

他与她,一个两年前的故事

“ 有没有那个Ta&#xff0c;值得你一生去守护”1她能力出众&#xff0c;业务能力无人能出其左右&#xff1b;他资质平庸&#xff0c;扮演一个很不起眼的角色&#xff1b;她国色天香&#xff0c;是整个公司上上下下关注的焦点&#xff1b;他其貌不扬&#xff0c;甚至很多人根本…

科普 | 知识图谱相关的名词解释

知识图谱&#xff08;Knowledge Graph&#xff09;是谷歌于2012年提出。企业通常出于商业目的去设计新的概念和名词。但每一个概念的提出都有其历史渊源和本质内涵。下面列举了知识图谱相关的几个概念&#xff0c;并简要阐明了它们与知识图谱的关系和区别。Knowledge Base&…

搜索引擎核心技术与算法 —— 倒排索引初体验

今天开启一个新篇章——智能搜索与NLP。本篇章将由羸弱菜鸡小Q和大家一同学习与智能搜索相关的知识和技术&#xff0c;希望能和大家一同学习与进步&#xff0c;冲鸭&#xff01;&#xff01;这里首先区分两个概念&#xff1a;搜索和检索检索&#xff1a;数据库时代的概念&#…

微服务设计原则和解决方案

一、微服务架构演进过程 近年来我们大家都体会到了互联网、移动互联带来的好处&#xff0c;作为IT从业者&#xff0c;在生活中时刻感受互联网好处的同时&#xff0c;在工作中可能感受的却是来自自互联网的一些压力&#xff0c;那就是我们传统企业的IT建设也是迫切需要转型&…

技术动态 | 知识可视化,连接和探究知识之间的联系!

本文转载自公众号&#xff1a;东湖大数据交易中心。大数据百人会线上沙龙 第八期3月1日晚八点&#xff0c;大数据百人会沙龙第八期主讲嘉宾——北京知珠传媒科技有限公司CEO郝庆一先生&#xff0c;分享他对可视化的理解&#xff0c;以及连接知识、探究知识之间的关系。1可视化…

潜在语义分析原理以及python实现代码!!!!

在Wiki上看到的LSA的详细介绍&#xff0c;感觉挺好的&#xff0c;遂翻译过来&#xff0c;有翻译不对之处还望指教。 原文地址&#xff1a;http://en.wikipedia.org/wiki/Latent_semantic_analysis 前言 浅层语义分析&#xff08;LSA&#xff09;是一种自然语言处理中用到的方法…

史上最可爱的关系抽取指南?从一条规则到十个开源项目

正文来自订阅号&#xff1a;AINLP正文作者&#xff1a;太子長琴&#xff08;NLP算法工程师&#xff09;小夕&#xff0c;我来给你出个题&#xff0c;看看你的反应如何&#xff1f;好呀好呀&#xff0c;你说~“梁启超有一个著名的儿子&#xff0c;叫梁思成;同时还有一个著名的学…

论文浅尝 | Leveraging Knowledge Bases in LSTMs

Yang, B., Mitchell, T., 2017. Leveraging Knowledge Bases in LSTMs for Improving Machine Reading. Association for Computational Linguistics, pp. 1436–1446.链接&#xff1a;http://www.aclweb.org/anthology/P/P17/P17-1132.pdf这篇论文是今年发表在 ACL 的一篇文章…

支付系统-对账系统

在支付系统中&#xff0c;资金对账在对账中心进行&#xff0c;将系统保存的账务流水与银行返回的清算流水和清算文件进行对账&#xff0c;核对系统账务数据与银行清算数据的一致性&#xff0c;保证支付机构各备付金银行账户每日的预计发生额与实际发生额一致。 一、清算对账系…

在线GPU分布式实验环境+企业级项目,轻松斩获offer

人工智能微专业招生简章&#xff08;春季&#xff09;重构专业核心培养复合型人才与斯坦福、伯克利、MIT、清华Top10名校同学成为校友一对一学习与职业规划扫码立刻加入本季招生名额仅剩200人

支付系统-系统架构

本文主要是从支付架构、支付流程分析、支付核心逻辑、支付基础服务、支付安全五个方面来详细讲述支付系统架构 &#xff08;1&#xff09;、架构的定义&#xff1a;架构一定是基于业务功能来展开的&#xff0c;主要是制定技术规范、框架&#xff0c;指导系统落地&#xff1b;好…

领域应用 | 智能导购?你只看到了阿里知识图谱冰山一角

在刚刚结束的2017第四届世界互联网大会上&#xff0c;评选出了年度18项代表性的领先科技成果&#xff0c;阿里云ET大脑就是其中之一。众所周知&#xff0c;融合了先进的大数据、人工智能技术的阿里云ET大脑已经在智慧城市、智慧交通等众多领域得到了应用和推广。但你知不知道&a…

美团技术团队-大众点评搜索基于知识图谱的深度学习排序实践

美团技术团队博客网址&#xff1a;https://tech.meituan.com/2019/02/28/root-clause-analysis.html 1. 引言挑战与思路搜索是大众点评App上用户进行信息查找的最大入口&#xff0c;是连接用户和信息的重要纽带。而用户搜索的方式和场景非常多样&#xff0c;并且由于对接业务种…