当前位置: 首页 > news >正文

1._专题1_双指针_C++

双指针

常见的双指针有两种形式,一种是对撞指针,一种是左右指针。
对撞指针:一般用于顺序结构中,也称左右指针。

  • 对撞指针从两端向中间移动。一个指针从最左端开始,另一个从最右端开始,然后逐渐往中间逼近。
  • 对撞指针的终止条件一般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循
    环),也就是:  ◦ left == right (两个指针指向同一个位置)​◦ left > right (两个指针错开)

快慢指针:又称为龟兔赛跑算法,其基本思想就是使用两个移动速度不同的指针在数组或链表等序列结构上移动。

这种方法对于处理环形链表或数组非常有用。

其实不单单是环形链表或者是数组,如果我们要研究的问题出现循环往复的情况时,均可考虑使用快慢指针的思想。

快慢指针的实现方式有很多种,最常用的一种就是:
在一次循环中,每次让慢的指针向后移动一位,而快的指针往后移动两位,实现一快一慢。
 

001 移动零(easy)

「数组分两块」是非常常见的⼀种题型,主要就是根据⼀种划分方式,将数组的内容分成左右两部 分。这种类型的题,一般就是使用「双指针」来解决。

1. 题目链接:283.移动零

2. 题目描述:

3.算法原理

4.C++ 算法代码:

002 复写零(easy)

1. 题目链接:1089.复写零

2. 题目描述:

3.算法原理

4.C++ 算法代码:

003 快乐数(medium)

1. 题目链接:202.快乐数

2. 题目描述:

上面示例图:

 

3.算法原理

4.C++ 算法代码:

004 盛最多水的容器(medium)

1. 题目链接:11.盛最多水的容器

2. 题目描述:

3.算法原理

解法一(暴力求解)(会超时):

解法二(对撞指针):


 

4.C++ 算法代码:

005 有效三角形的个数(medium)​

1. 题目链接:611.有效三角形的个数

2. 题目描述:

3.算法原理

 解法一(暴力求解)(会超时):

解法二(排序 + 双指针):

4.C++ 算法代码:

http://www.lryc.cn/news/410399.html

相关文章:

  • Spring集成ES
  • 力扣高频SQL 50题(基础版)第二十六题
  • WIFI 接收机和发射机同步问题+CFO/SFO频率偏移问题
  • ubuntu安装并配置flameshot截图软件
  • 【Linux】CentOS更换国内阿里云yum源(超详细)
  • Leetcode49. 字母异位词分组(java实现)
  • OpenJudge | 字符串中最长的连续出现的字符
  • 11day-C++list容器使用
  • docker 常用管理命令及数据备份
  • 前端开发:Vue2.0桌面组件库-Element
  • Java常见的面试二
  • 【Qt】QLCDNumberQProgressBarQCalendarWidget
  • C++ 代码实现局域网即时通信功能 (windows 系统 客户端)
  • 机器人阻抗控制实现方法及其存在的科学问题
  • 解决:xxx.xxx/res/modules/.ds_store: error: the file name must end with .xml 问题
  • EEtrade:区块链技术的五大应用场景
  • DAO、DPO、DTO、POJO、VO、BO、EBO
  • 数据库期末复习
  • pyinstaller带浏览器一起打包playwright 独立运行exe
  • docker添加容器服务所需字体
  • Java面试八股之Spring AOP 和 AspectJ AOP 的区别
  • Java人力资源招聘社会校招类型招聘系统PC端
  • C# 知识点总结
  • 【ffmpeg命令入门】视频的旋转与翻转
  • 学懂C语言(二十五):深入理解 C语言结构体 位域 的概念
  • LLM推理优化——KV Cache篇(百倍提速)
  • Linux进程--system
  • [Office] Word 特殊字符
  • 联想电脑怎么重装系统_联想电脑U盘重装win10详细图文教程
  • 前端开发者必备:揭秘谷歌F12调试的隐藏技巧!