剑指Offer基础知识(六)面试中的各项能力

本文主要记录阅读剑指Offer这本书所遇到的算法解释并作一些个人的拓展,其中的算法面试题请看剑指Offer面试题集


6.2沟通和学习能力

沟通能力:面试者无论在介绍项目经验还是介绍解题思路时,都需要逻辑清晰明了,语言详略得当,表述时突出重点、观点明确
学习能力:计算机知识技术更新换代很快,从业人员需要很强的学习能力,面试官通常有两种方法考擦,第一种是询问最近在看什么书、做什么项目、从中学习到了什么新技术,第二种是抛出一个新概念,接下来观察应聘者能不能在短时间理解新概念并解决相关问题,如丑数、二叉树镜像、逆序对等
提问能力:学习能力强的人应该具有主动积极的态度,对未知的领域有强烈的求知欲望,遇到不懂的问题应该主动提问

6.3知识迁移能力

知识需要可以变现,即将已有的技术理解迁移到学习新技术的过程中,一般考察方式有两种
第一种是将经典问题稍作变换,考察面试者找到和经典问题的联系,并从中受到启发解决新问题
如面试题38数字在排序数组中出现的次数,排序数组可以想到二分查找,我们可以把二分查找的思想迁移稍作变换,用二分查找找到排序数组中重复数字的第一个和最后一个,从而得到数字在数组中出现的次数
第二种是先问一个简单问题之后追问一个相关的难度更大的问题,考察面试者总结简单问题的思路方法迁移至解决困难问题
如面试题40数组中只出现一次的数字,如面试官先问数组中只有一个数字出现一次的情况,后面追问数组中有多个数字出现一次等
重要的是举一反三的能力,题目是刷不完的,只有总结题目的特点和思路,才能分析新题目的相关性提高举一反三的能力

6.4抽象建模能力

针对实际生产生活,面试官喜欢从其中提炼出问题,考查面试者是否能建立数学模型解决问题
建模第一步是选择合理的数据结构来表示问题,需要根据问题的特点考虑性能、编程难度等
如面试题44中用一个数组表示一副牌,用11、12、13表示JQK,用0表示大小王
在面试题45中用一个环形链表模拟一个圆圈
建模第二步是分析模型中的内在规律,只有对问题进行细微的分析,才能找到模型中的规律解决问题
如面试题”青蛙跳台阶”内在规律是斐波那契数列
如面试题43本质是求数列fn=f(n-1)+f(n-2)+f(n-3)+f(n-4)+f(n-5)+f(n-6)