![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 97
Hyt的笔记本
这个作者很懒,什么都没留下…
展开
-
【算法】二分查找
Leetcode 34.在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。输入target = 8输出[3,4]输入target = 6输出[-1,-1]输入nums = []target = 0输出[-1,-1]nums是一个非递减数组。原创 2024-07-25 00:37:41 · 645 阅读 · 0 评论 -
【算法】滑动窗口
同向指针算法是一种使用两个指针,它们同时向同一个方向移动,以解决问题的算法技巧。这两个指针可以指向数组或字符串中的不同位置,根据问题的要求,它们可以以不同的速度移动。期间会产生一段区间,因此我们可以比喻成一个窗口,而我们可以在这个窗口内对数据进行一些我们想要的处理,由于这个区间一般都会向后移动,所以我们也可以称之为滑动窗口。例如,在数组中查找目标元素时,可以使用一个指针从数组的起始位置开始遍历,另一个指针从数组的末尾开始遍历,两个指针同时向数组的中间移动。原创 2024-05-03 22:46:27 · 885 阅读 · 0 评论 -
【算法】双指针的应用
常见的双指针有两种形式,⼀种是对撞指针,⼀种是左右指针。⼀般⽤于顺序结构中,也称左右指针。对撞指针从两端向中间移动。⼀个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼近。对撞指针的终⽌条件⼀般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循环),也就是:(两个指针指向同一个位置)(两个指针错开)又称为龟兔赛跑算法,其基本思想就是使用两个移动速度不同的指针在数组或链表等序列结构上移动。这种方法对于处理环形链表或数组非常有用。原创 2024-03-19 18:51:41 · 1174 阅读 · 0 评论