网站首页 > CBA动态> 文章内容

前端面试对算法要求不高?!我被打脸了

※发布时间:2019-3-11 5:12:52   ※发布作者:habao   ※出自何处: 

  目前为止我参加过几次前端开发方面的面试,确实有不少面试官会问道一些算法。通常会涉及的,是链表、树、字符串、数组相关的知识。

  前端面试对算法要求不高,似乎已经是业内的一种共识了。虽说算法好的前端面试肯定会加分,但是仅凭常见的面试题,而不去联系需求,很难让人觉得,算法对于前端真的很重要。

  我:我写过等宽瀑布流。实现是当用户拉到底部的一定高度的时候,向后端请求一定数量的图片,然后再插入到页面中。

  我:这个需要后端发来的数据里面有图片的高度,然后我就可以看当前高度最小的是哪里列,将新图片插入那一列,然后再看看新的高度最小的是哪一列。

  面试官:我觉得你没有理解我的问题,我的意思是如何给后端发来的图片排序,让几列图片之间的高度差最小?

  对话大概就是这样,虽然面试最终还是pass了,但这个问题确实让我很在意,因为我觉得,高度差“最”小,真的能用很简单的算法就解决吗?

  这个问题的实质,其实就是有一个数组,将数组元素分成n份,每份所有元素求和,如何使每份的和的差最小。

  许多使用递归去解决的编程问题,可以重写为使用动态规划的技巧去解决。动态规划方案通常会使用一个数组来建立一张表,用于存放被分解成众多子问题的解。当算法执行完毕,最终的解将会在这个表中很明显的地方被找到。

  后面是一个用动态规划重写斐波那契数列的例子。我看到它只是将递归的结果,保存在了一个数组中,就天真的以为动态规划是优化递归的一种方法,并没有深入去理解。

  动态规划可以求解一类“最优解”问题,这在某种程度上让我耳目一新。这件事给我的是,数据结构与算法对于前端的意义,远比我们认为的更重要。语言只是工具,而算法才是程序的灵魂,这句话非常有道理。方逸华有孩子吗

  也因此分享一套适合前端程序员学习的干货视频,方便大家掌握数据结构与算法方面的知识,限时免费领取(截止到10号结束)。

  这套视频由开课吧友情提供,大家熟知的IT技术大牛廖雪峰已加盟开课吧,并耗时半年研发了精品付费课程——《Web全栈架构师》,来帮助初级前端工程师实现全方位进阶。课程深度对标百度T6--T7,特别适合有1-3年开发经验的前端程序员们学习,对课程感兴趣也可以加微信了解。

  

相关阅读
  • 没有资料