更新 双指针总结 排版格式修复

This commit is contained in:
jinbudaily
2023-07-20 14:27:16 +08:00
parent 4fe1f08acd
commit c3ebc91d4d

View File

@ -8,7 +8,8 @@
相信大家已经对双指针法很熟悉了,但是双指针法并不隶属于某一种数据结构,我们在讲解数组,链表,字符串都用到了双指针法,所有有必要针对双指针法做一个总结。
# 数组篇
# 双指针总结篇
## 数组篇
在[数组:就移除个元素很难么?](https://programmercarl.com/0027.移除元素.html)中,原地移除数组上的元素,我们说到了数组上的元素,不能真正的删除,只能覆盖。
@ -26,7 +27,7 @@ for (int i = 0; i < array.size(); i++) {
所以此时使用双指针法才展现出效率的优势:**通过两个指针在一个for循环下完成两个for循环的工作。**
# 字符串篇
## 字符串篇
在[字符串:这道题目,使用库函数一行代码搞定](https://programmercarl.com/0344.反转字符串.html)中讲解了反转字符串,注意这里强调要原地反转,要不然就失去了题目的意义。
@ -48,7 +49,7 @@ for (int i = 0; i < array.size(); i++) {
**主要还是大家用erase用的比较随意一定要注意for循环下用erase的情况一般可以用双指针写效率更高**
# 链表篇
## 链表篇
翻转链表是现场面试,白纸写代码的好题,考察了候选者对链表以及指针的熟悉程度,而且代码也不长,适合在白纸上写。
@ -62,7 +63,7 @@ for (int i = 0; i < array.size(); i++) {
那么找到环的入口,其实需要点简单的数学推理,我在文章中把找环的入口清清楚楚的推理的一遍,如果对找环入口不够清楚的同学建议自己看一看[链表:环找到了,那入口呢?](https://programmercarl.com/0142.环形链表II.html)。
# N数之和篇
## N数之和篇
在[哈希表:解决了两数之和,那么能解决三数之和么?](https://programmercarl.com/0015.三数之和.html)中讲到使用哈希法可以解决1.两数之和的问题
@ -87,7 +88,7 @@ for (int i = 0; i < array.size(); i++) {
同样的道理五数之和n数之和都是在这个基础上累加。
# 总结
## 总结
本文中一共介绍了leetcode上九道使用双指针解决问题的经典题目除了链表一些题目一定要使用双指针其他题目都是使用双指针来提高效率一般是将O(n^2)的时间复杂度,降为$O(n)$。