快慢双指针算法笔记

文章目录

双指针严格来说不是一种算法,而是一种思路。

场景

数组长度为n+1,值在1~n之间,有且仅有一个重复数。

  1. 数组值在合法下标范围内 (如长度为n+1,值在1~n之间)

  2. 可以形成链表结构

  • 将数组视为链表:index -> nums[index] -> nums[nums[index]] -> ...

  • 重复元素会导致环的形成

解决方案

为什么要以值作为下标?

刚看到这时不好理解,后来才发现自己没看清题,这道题的前提之一就是长度为n+1,值在1-n之间,所以可以把值作为下标传入。

相关推荐
大鱼>25 分钟前
宠物异常行为预警系统:边缘计算与实时检测
人工智能·深度学习·算法·iot·宠物
鱼子星_1 小时前
【C++】内存管理:内存分布,new/delete的使用及细节处理,new/delete的底层,定位new表达式
开发语言·c++·笔记
愚昧之山绝望之谷开悟之坡1 小时前
回购逆回购
笔记
鱼子星_1 小时前
【C++】string(上):string的基本使用
c++·笔记·字符串
AOwhisky1 小时前
Python 学习笔记(第四期)——字符串:格式化、操作与文本处理——核心知识点自测与详解
开发语言·笔记·python·学习·列表·元组·字典
chnyi6_ya1 小时前
论文阅读笔记 | VIDEOPHY: Evaluating Physical Commonsense for Video Generation
论文阅读·笔记
米尔的可达鸭2 小时前
深入操作系统 Socket 底层:套接字控制块、FD映射、阻塞IO核心完整实现
arm开发·数据结构·websocket·网络协议·算法·架构·安全架构
AOwhisky2 小时前
Python 学习笔记(第六期)——函数:定义、参数传递与作用域
笔记·python·学习·云原生·运维开发·函数·参数传递
tachibana22 小时前
hot100 课程表(207)
java·数据结构·算法·leetcode
神仙别闹2 小时前
编写基于C++ Huffman 算法的无损压缩程序和解压程序
java·c++·算法