快速突破面试算法之双指针篇

2023-11-02

前言:什么是双指针

   砸门用大白话来说,就是两个定位装置。

  那么这两个定位装置有什么用呢?那肯定去定位撒,而且更高级的是这装置上面还有摄像头,可以看见当前所在位置的情况。

  现在我们给两个装置各自赋予动力,先赋予相同的动力(及移动速度一样)

  现在这两个装置具备了行动和观察的作用了。那么我们就将他们比作小摩托。

  两个摩托肯定有方向行驶:①相对  ②相向

一、相同速度

①相对

这样同速相对走肯定比单个箭头走完这段路要快。因为我们的小摩托可是有查看功能,就意味着双指针同速相对走比单个查看完一个数组要快一倍!

②相向

这样同速相向走就意义不大了,本来一个指针都能解决为什么要要用两个,如果有人知道这样做的意义,可以留在评论区。

二、不同速度(如第一个指针是第二个指针的两倍)

①相对

他们相遇的位置会在3/4处,只要速度倍数不一样,那么它相遇的位置就不一样!具体题目具体分析!

 

②相向

这个经典好处就是:对于链表,当我们第二个指针走到最后位,第一个指针刚好处于中间,链表取中间值。

 

三、具体的问题要具体分析,上面是最基本的,多刷题体验感受就领悟到精髓了

 

四、干货:双指针刷题列表

1.有序数组的TwoSum(力扣 167)        博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112562924  

2.平方数之和(力扣 633)                      博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112565550

3.反转字符串中的元音字符(力扣 345) 博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112566109

4.验证回文字符串(力扣680)                博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112566358

5.合并两个有序数组(力扣88)               博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112566939

6.环形链表(力扣141)                            博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112567414

 

7.通过删除字母匹配到字典里最长的单词(力扣524)

博主的笔记思路及代码讲解:https://blog.csdn.net/qq_40262372/article/details/112567741

 

五、各种类型的高频面试题汇总:

https://blog.csdn.net/qq_40262372/article/details/112556249

 

六、如有疑问可加QQ群讨论:725936761     博主免费答疑
欢迎大家一起讨论进步。后续遇到相似的题会继续更新!

群里已有字节、滴滴大佬,可帮忙内推!也欢迎其他大厂的工作人士进群!帮忙内推~

为了鼓励大家坚持,当天打卡人数超过一半,群主发一个小红包(群主也是学生),激励大家坚持下去!希望以后找工作的时候大家能互捞一下~~~

 

B站视频讲解如何三个月学习JAVA拿到实习Offer:

https://www.bilibili.com/video/BV1dV411t71K

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速突破面试算法之双指针篇 的相关文章

随机推荐