首页 > 其他分享 >双指针 & 双向搜索

双指针 & 双向搜索

时间:2024-07-15 20:30:21浏览次数:7  
标签:二分 ... 复杂度 满足 搜索 双向 mathcal 指针

双指针

根据人类直觉这个东西需要满足单调性,所以预处理的时候大概率需要排序。
好像常与二分结合使用?
可以用在序列、链表(存储位置)或者树、图上(存储结点)。
或者用于其他算法(eg:单调队列、差分),还有主播没学过的莫队。

正题

顾名思义双指针是两个指针,通常是外层一个内层一个(依靠相对移动去维护区间信息,从而满足题意),写个伪代码:

int j = () ;
for (i : a -> b) {
  while (j ...) {
    ...
  }
}

可以看出其实并不是指针,只是用下标实现了类似指针的功能。
根据伪代码不难发现,\(j\) 并不会每次都更新,手模一下发现复杂度 \(\mathcal{O}(n)\),很好。
举个栗子:
给定一个升序排列的数组,请找出两个数是的他们的和满足目标数 \(t\)。
如果二分,显然复杂度 \(\mathcal{O}(n\log n)\),与双指针比较显然更劣,说明这个玩意还是有用的。

标签:二分,...,复杂度,满足,搜索,双向,mathcal,指针
From: https://www.cnblogs.com/Tomoyuki-Mizuyama/p/18303920

相关文章

  • 博客园被百度搜索降权一事的来龙去脉分析 —— 百度减少收录cnblogs博文
    相关事情:蜘蛛的依旧疯狂与园子的新畅想:尝试放出被屏蔽的百度蜘蛛网段再次尝试放出被屏蔽的百度蜘蛛网段面对百度的无期徒刑,幸好还有微软的必应百度搜索引擎是国内搜索引擎的一哥,平时素来霸道,到时也是对谁都霸道的那种。cnblogs虽然是技术博客中的顶流,但是由于没有很好的......
  • C语言指针
    指针引用与指针引用&指针*必须初始化可以不初始化不能为空可以为空不能更换目标可以更换目标初始化案例int&r;//不合法,没有初始化引用int*p;//合法,但p为野指针,使用需要小心(1)是否需要初始化由于引用不能为空,所以我们在使用引用的时候......
  • 代码随想录算法训练营第22天 |二叉树part07:235. 二叉搜索树的最近公共祖先、701.二叉
    代码随想录算法训练营第22天|二叉树part07:235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点235.二叉搜索树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/description/代码随想录:htt......
  • 数组002 一维数组与指针
    #include<iostream>usingnamespacestd;//1、指针的算术://将一个整型变量加1后,其值将增加1。//但是,将指针变量(地址的值)加1后,增加的量等于它指向的数据类型的字节数。////2、数组的地址//2.1数组在内存中占用的空间是连续的。//......
  • 精准搜索:本地文件检索工具的高效策略
    背景背景1:在日常的工作中,本地磁盘随着工作时间的变长,新建的目录会越来越多存放的文件也越来越多;每次想要找一个文件,确实要浪费一点时间,本着让时间更高效的原则,想着如果借助程序去检索那是不是更快些,于是有了下边的实践。背景2:保险的销售人员也就是业务老师,由于资料过多,找起来确......
  • 搜索枚举_冯政玮
    搜索枚举_冯政玮A-循环赛搜索剪枝题面\(n\) 支队伍比赛,每两支队伍比赛一次,平 \(1\) 胜 \(3\) 负 \(0\)。给出队伍的最终得分,求有多少种可能的分数表。平1胜3负0指:若两支队伍打平,则各得到 \(1\) 分;否则,胜利的队伍得到 \(3\) 分,被打败的队伍得到 \(0\) 分。......
  • C语言指针超详解——强化篇
    C语言指针系列文章目录入门篇强化篇文章目录C语言指针系列文章目录1.assert断言2.指针的使用和传址调用2.1strlen的模拟实现2.2传值调用和传址调用3.数组名的理解4.使用指针访问数组5.一维数组传参的本质6.冒泡排序7.二级指针8.指针数组9.指针数组模拟......
  • 动态库链接和加载时的路径搜索优先级
    目录前言动态库的链接动态库的加载前言在开发一个新项目时遇到了动态库加载异常的问题,因此在这里记录一下动态库的链接和加载过程中库路径的搜索优先级的相关知识。动态库的链接现在有一个main.o可重定位目标文件,其中需要用到开源库log4cpp。在链接的时候,我们可以这样链接:g++......
  • 4. 搜索文件
    4.搜索文件如果一个项目里边的源文件很多,在编写CMakeLists.txt文件的时候不可能将项目目录的各个文件一一罗列出来,这样太麻烦也不现实。所以,在CMake中为我们提供了搜索文件的命令,可以使用aux_source_directory命令或者file命令。4.1方式一在CMake中使用aux_source......
  • https 单向认证和双向认证
    单向认证单向认证是客户端(通常是浏览器)验证服务器的身份。服务器向客户端提供数字证书,客户端通过验证该证书的真实性来确认与服务器的连接是安全的。服务器提供证书:服务器向客户端提供一个数字证书,用于验证服务器的身份。客户端验证服务器:客户端验证服务器的证书,确保服务器......