失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 还担心面试手写算法?掌握这些数组算法解题技巧 再也不怕了

还担心面试手写算法?掌握这些数组算法解题技巧 再也不怕了

时间:2020-06-22 15:48:30

相关推荐

还担心面试手写算法?掌握这些数组算法解题技巧 再也不怕了

思路一

暴力法,就是实在没有办法的时候,可以选用暴力法;

这往往是很多人有能力想到但又非常容易忽略的一种方法

思路二

数组转Map,数组的特点是根据索引可以很快的获取到元素的值,但有时候往往需要根据值来获取索引。我们当然可以通过遍历数组来实现,但这样的话时间复杂度就太高了,如果实现转成Map,就可以在时间复杂度为1的情况下实现根据值查找索引的需求;

思路三

数组事先排序,处理有序数组,利用有序的特点往往可以减少很多不必要的操作或者遍历;

思路四

与思路二有相同之处,都是为了解决查找问题的思路;

思路二中式查找确定的值,如果不是确定的值,比如:查找最接近某个数的值,那么思路二就失效了,这时候可以考虑二分查找,往往需要结合思路三;

思路五

双指针遍历,某些情况下的两层遍历可以使用双指针进行一次遍历代替,往往需要结合思路三一起实现;

例题

leetCode第1题:两数之和,需要用到思路二 转map

leetCode第4题:两个有序数组中位数,需要用到两次二分查找

leetCode第11题:三数之和,可以用Map将时间复杂度降到N方,也可以用排序+双指针,时间复杂度同样是N方,空间复杂度可以降到1

leetCode第16题:需要利用思路三和思路五将时间复杂度降低到n的平方;排序 + 双指针

如果觉得《还担心面试手写算法?掌握这些数组算法解题技巧 再也不怕了》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。