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++ 算法代码:
相关文章:

1._专题1_双指针_C++
双指针 常见的双指针有两种形式,一种是对撞指针,一种是左右指针。对撞指针:一般用于顺序结构中,也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始,另一个从最右端开始,然后逐渐往中间逼近…...
Spring集成ES
RestAPI ES官方提供的java语言客户端用以组装DSL语句,再通过http请求发送给ES RestClient初始化 引入依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </d…...

力扣高频SQL 50题(基础版)第二十六题
文章目录 力扣高频SQL 50题(基础版)第二十六题1667.修复表中的名字题目说明实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题(基础版)第二十六题 1667.修复表中的名字 题目说明 表: Users ----------------…...

WIFI 接收机和发射机同步问题+CFO/SFO频率偏移问题
Synchronization Between Sender and Receiver & CFO Correction 解决同步问题和频率偏移问题是下面论文的关键,接下来结合论文进行详细解读 解读论文:Verification and Redesign of OFDM Backscatter 论文pdf:https://www.usenix.org/s…...

ubuntu安装并配置flameshot截图软件
参考:flameshot key-bindins 安装 sudo apt install flameshot自定义快捷键 Settings->Keyboard->View and Customize Shortcuts->Custom Shortcuts,输入该快捷键名称(自定义),然后输入command(…...

【Linux】CentOS更换国内阿里云yum源(超详细)
目录 1. 前言2. 打开终端3. 确保虚拟机已经联网4. 备份现有yum配置文件5. 下载阿里云yum源6. 清理缓存7. 重新生成缓存8. 测试安装gcc 1. 前言 有些同学在安装完CentOS操作系统后,在系统内安装比如:gcc等软件的时候出现这种情况:(…...

Leetcode49. 字母异位词分组(java实现)
今天我来给大家分享的是leetcode49的解题思路,题目描述如下 如果没有做过leetcode242题目的同学,可以先把它做了,会更好理解异位词的概念。 本道题的大题思路是: 首先遍历strs,然后统计每一个数组元素出现的次数&#…...
OpenJudge | 字符串中最长的连续出现的字符
总时间限制: 1000ms 内存限制: 65536kB 描述 求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和tab),如果这样的字符不止一个,则输出第一个 输入 首先输入N…...

11day-C++list容器使用
这里写目录标题 1. list的介绍及使用1.1 list的介绍1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2. list的模拟实现2.1 list的反向迭代器 1. list的介绍及使用 1.1 list的介绍 list的…...
docker 常用管理命令及数据备份
docker 常用管理命令及数据备份 常用管理命令 重启 cd share docker compose restart 停止 cd share docker compose stop 启动 cd share ./deploy.sh 升级 cd share ./deploy.sh 查看日志 cd share docker compose logs -f 数据备份 以下备份相关命令均要求在doc…...

前端开发:Vue2.0桌面组件库-Element
引入Element的步骤: 1.在vscode终端中执行命令(需要联网) 下载成功 2.在main.js中导入element.ui组件库。 同上,自定义的组件需要先在根组件中引入。 3.访问官网,复制调整代码...
Java常见的面试二
1、普通类和抽象类有那些区别 普通类中不能有抽象方法,抽象类中可以有抽象方法普通类可以直接实例化,抽象类不能直接实例化 2、抽象类能够使用final修饰吗 不能,抽象类是由子类继承的,但是final修饰的类不能被继承。两者矛盾所以…...

【Qt】QLCDNumberQProgressBarQCalendarWidget
目录 QLCDNumber 倒计时小程序 相关属性 QProgressBar 进度条小程序 相关设置 QLCDNumber QLCDNumber是Qt框架中用于显示数字或计数值的小部件。通常用于显示整数值,例如时钟、计时器、计数器等 常用属性 属性说明intValueQLCDNumber显示的初始值(int类型)va…...

C++ 代码实现局域网即时通信功能 (windows 系统 客户端)
本项目使用C实现具备多个客户端和服务器端即时通信聊天功能软件 一:项目内容 使用C实现一个具备多客户端和一个服务器端即时通信功能的聊天软件。 本项目的目的是 学习在windows平台下,进行C网络开发的基本概念:TCP/IP socket通信࿰…...
机器人阻抗控制实现方法及其存在的科学问题
一、机器人阻抗控制的实现方法 机器人阻抗控制主要分为两种方法:基于位置的阻抗控制和基于力的阻抗控制。 基于位置的阻抗控制: 工作原理:让机器人电机在位置模式下工作,通过发送目标位置和速度实现阻抗特性。主要目的:控制机器人的位置精度和运动轨迹。特点:该方法侧重…...
解决:xxx.xxx/res/modules/.ds_store: error: the file name must end with .xml 问题
解决:xxx.xxx/res/modules/.ds_store: error: the file name must end with .xml 问题 该问题是由于Android Studio校验到布局文件中存在不以.xml后缀名结尾的文件,这个文件就是.DS_store,它是Mac上系统自动创造的隐藏文件,把该文…...

EEtrade:区块链技术的五大应用场景
区块链技术,作为近年来备受瞩目的颠覆性技术,其去中心化、透明化、安全性和可追溯性等特性,为各行各业带来了前所未有的机遇。从数字货币到金融资产交易结算,从数字政务到存证防伪,再到数据服务,区块链正逐…...
DAO、DPO、DTO、POJO、VO、BO、EBO
目录 1. DAO (Data Access Object) 2. DPO (Data Persistence Object) 3. DTO (Data Transfer Object) 4. POJO (Plain Old Java Object) 5. VO (Value Object) 6. BO (Business Object) 7. EBO (Entity Bean Object) 在Java开发中,尤其是与数据访问和对象映…...

数据库期末复习
数据库期末复习 分析题 1 (1)使用数据库系统可以大大提高应用开发的效率,方便用户的使用减轻数据库系统管理人员维护的负担,请回答数据库系统有哪些部分组成?什么是数据库管理系统,其主要功能包括哪些方而&…...

pyinstaller带浏览器一起打包playwright 独立运行exe
前置条件 没有安装自带环境,则 playwright install 安装了自带的浏览器 查看playwright的浏览器的位置 playwright install --dry-run 打开此文件夹可以看到 新建一个多层级目录playwright\driver\package.local-browsers 然后复制chromium-1124到playwright\dr…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 sudo apt install fonts-wqy…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...