常见算法
文章平均质量分 59
Keyla_yyyy
记录自己日常学习内容
展开
-
双指针--快慢指针和对撞指针
滑动窗和双指针的概念类似,双指针更注重两个指针的值,而滑动窗口更关注窗口这个区间的值。fast走过的路程是f=a+n(b+c)+b, n为快指针比慢指针多走的圈数,f=2s,所以a+n(b+c )+b=2(a+b),化简后a+b=n(b+c)第一次相遇时n=1,所以a=c。快慢指针是指定义快指针fast,慢指针slow,两个指针以不同的步长向前移动,直到两个指针的值相等或者满足条件为止。对撞指针又叫左右指针,定义左指针left,右指针right,从两端遍历直到两指针相遇或满足条件为止。原创 2022-12-01 18:53:18 · 335 阅读 · 0 评论 -
常用算法:双指针(对撞指针)
而双指针算法就是运用单调性使得指针只能单向移动,因此总的时间复杂度只有 O(2n),也就是O(n)。快慢指针是指定义快指针fast,慢指针slow,两个指针以不同的步长向前移动,直到两个指针的值相等或者满足条件为止。对撞指针又叫左右指针,定义左指针left,右指针right,从两端遍历直到两指针相遇或满足条件为止。仔细观察该题目,该数组已经排序,平方后是两边到中间数值逐渐减小,可以使用左右指针比较两侧的数据,能减少时间复杂度。2.双指针可以分为两种类型,一种是快慢指针,一种是对撞指针。原创 2022-10-31 18:13:03 · 702 阅读 · 0 评论 -
常见算法------1.二分查找
我们应该都玩过或者听说过一个游戏,猜数字。A在纸上写下一个0-100的数字,然后由其他人猜测这个数字是多少,猜数字的人报出数字后A会给出大了或者小了的提示。一般猜测者会报出50,依次缩小区间到0-50,0-25,12-25,12-18。这就是二分法的基本概念,在【大量】的【有序】且【不重复】的数据中查找目标值。(1)前置条件满足有序不重复数组边界条件要搞清楚,做到能保证取到值且所有数字都能被遍历到。(2)能保证取到值:比如[1,1]可以取到数值“1”,[1,1)就是没有意义的区间,如果我们选择了[le原创 2022-10-26 22:00:31 · 570 阅读 · 1 评论