一二面_算法类
Posted 煜成'Studio
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一二面_算法类相关的知识,希望对你有一定的参考价值。
一二面_算法类
排序
记住下面的四个排序以及他们的时间复杂度和空间复杂度,通常是给你一个算法题,排序是它其中一个步骤,也不会要求你用哪个指定的排序
快速排序
https://segmentfault.com/a/1190000009426421
选择排序
https://segmentfault.com/a/1190000009366805
希尔排序
https://segmentfault.com/a/1190000009461832
冒泡排序
堆栈、队列、链表
堆栈一定要准备,JS的数组本身就有堆栈的特性
https://juejin.im/entry/58759e79128fe1006b48cdfd
递归
一定要会,百分之六十的算法题,只要稍微复杂,基本都要用到递归,写递归题的时候要注意递归的本质,就是终止条件是什么以及参数怎么传递
https://segmentfault.com/a/1190000009857470
波兰式和逆波兰式
数据结构的书上有明确的形式需要用波兰式和逆波兰式解决
理论:http://www.cnblogs.com/chenying99/p/3675876.html
源码:https://github.com/Tariiaos/rpn.js/blob/master/rpn.js
怎么使自己能顺利通过这场算法题的面试
1.上面的基本功
2.技巧所在,拿到这个题目先理解题目的意思,理解不了可以问问面试官可不可以给些提示,这是很礼貌的也是很正常的要求,面试官有义务帮你解释一下,他要是懒得给你提示,说明你前面答得太烂了,一般情况下他要是觉得你前面的题达的还OK,这算法题确实有难度,面试官稍微提示一下你是很正常的,这是你的权利,不要不用。他给你提示了,有了前面的基本功,基本你就知道用什么方法解决了,但是如果真的不知道代码怎么写,但思维逻辑一定要弄清楚(伪代码),比如要用递归,先写出递归的函数来,再梳理条件和参数该怎么传,要学会分解,能想到哪一步就写到哪一步,面试过程中你能想到哪你的笔要落在哪,一行代码都不要少些,你能写出来多少就是多少,最后实在写不出来了,你可以问他一下说,我这个地方卡住了,我知道要怎么做,但是我不知道用哪个API或者什么什么怎么用了,你问面试官,面试官这时候不怕你问问题,因为这个题本身难度就是特别大,如果在他的提示下你能把这个题达好,你就已经很棒了。
3.知识面,这个题我真的不知道怎么答了,我真的写不出来,但是我知道这个题我见过我知道用什么样的算法,比如用波兰式和逆波兰式,如果当时你就没准备这个算法或想不起来这个算法的源码怎么写,但是你要告诉他这道题的原理是什么,比如什么是波兰式,把它写清楚,然后这块的东西,哪块代码在哪个文章中有看过,核心原理是什么,把它的意思解释出来
以上是关于一二面_算法类的主要内容,如果未能解决你的问题,请参考以下文章