算法-双指针 快慢指针
2021/8/29 22:06:06
本文主要是介绍算法-双指针 快慢指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
双指针:
不同的状态,导致不同指针的移动。最终的状态由于两个指针的位置决定。
经典题目:
1. 盛最多水的容器
问题抽象,容量:
min(l, r) * t。
容量取决于最小的一块木板,并且和木板之间的距离有关。
另双指针在容器的各自最远端。双指针开始向内移动,最大的容量必定在向内移动的过程中产生。
因为向内移动必定减小t,此时向内移动的最优方向必定以去掉较小的一块木板决定。
因此往min(l, r)方向移动一次。
时间复杂度O(N)
2. 所有三数之和或者两数之和。
问题在于找到**所有**符合的元素。
如果只找一个,哈希表可以O(n)。
找到所有,先排序O(nlogn),再双指针O(n)。
三数之和的时间复杂度为O(n*n)
这篇关于算法-双指针 快慢指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南