《双指针篇》---双指针算法原理

news/2024/11/1 21:46:05/

利用数组下标来充当指针。

1.双指针算法本质:

将数据划分为三个区间,我们以移动零为例:

给定数组中。

【0,left】:全是非0元素。

【left+1,cur-1】:全是0元素。

【cur,n-1】:待处理元素。

        public void moveZeroes(int[] nums) {//定义left和right双指针。并在right<n的情况下循环。//如果nums[right] != 0则交换left和right指向的元素。//若等于零则right++。//保证left之前的数据非零。left指向第一个零。//right之后的数据待处理。int left = 0,right = 0;int n = nums.length;while(right < n){if(nums[right] != 0){int temp = nums[left];nums[left] = nums[right];nums[right] = temp;left++;}right++;}}

2.拓展:快排(双指针算法是快排中最核心的一步)

快排里面最核心的一步就是数据划分这一步。

定义一个数组,我们设置一个基准元素tmp。将数组划分为两个部分。

左边全 <= tmp。 右边全 > tmp。

三个区间:

【0,left】:全是 ≤ tmp。

【left+1,cur-1】:全是 > tmp。

【cur,n-1】:待处理元素。

快排的双指针思想不适合处理很多数据都相同的情况。

后面有一道颜色划分的题目。

我们会把数组分成三块。用这个算法排序思想来解决快排是最好的解法。


http://www.ppmy.cn/news/1543694.html

相关文章

【MySQL】视图特性 用户管理

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是视图&#xff0c;我们又该如何管理用户。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! >…

青少年编程与数学 02-002 Sql Server 数据库应用 17课题、事务处理

青少年编程与数学 02-002 Sql Server 数据库应用 17课题、事务处理 课题摘要:一、事务处理二、注意事项三、应用示例 本课题介绍了SQL Server 2022中的事务处理机制&#xff0c;包括事务的概念、ACID原则&#xff08;原子性、一致性、隔离性、持久性&#xff09;以及如何使用T-…

Notepad++ 插件安装,The plugin package is not found问题

问题&#xff1a; 今天想用自己电脑的Notepad来分析一下几个json文件&#xff0c;后续工作传输都使用json通信&#xff0c;公司装了jsonView插件都没什么问题。自己电脑装了就问题百出&#xff1a; 本人版本&#xff1a; 揣测1&#xff1a; 是不是管理员权限的问题&#xff0c;…

Flink CDC系列之:学习理解standalone模式

Flink CDC系列之&#xff1a;学习理解standalone模式 准备工作启动和停止本地集群设置 Flink CDC提交Flink CDC Job 独立模式是 Flink 最简单的部署模式。本简短指南将向您展示如何下载、安装和运行 Flink 的最新稳定版本。 您还将运行一个示例 Flink CDC 作业并在 Web UI 中查…

客户案例 | Ansys助力Lumotive将设计周期缩短两到三个数量级

“我们使用Ansys Lumerical FDTD、亚马逊云科技&#xff08;AWS&#xff09;和 Python API设计了这种超表面&#xff0c;同时使其与CMOS制造公差兼容。Lumerical的AWS解决方案有助于Lumotive将设计周期缩短两到三个数量级&#xff0c;而且不会增加成本或降低准确性。” —— P…

uni-app在H5页面唤起小程序登录 然后再回到当前页面

在H5页面触发小程序方法跳转到登录页面 wx.miniProgram.navigateTo({ url: /pages/login/index?webviewRedirect encodeURIComponent(redirectUrl) }); 携带对应的返回地址 在等于成功之后触发webViewPage 携带token if (this.webviewRedirect) { const tempUrl decodeU…

MySQL 复合索引测试

对MySQL复合索引结合具体示例&#xff0c;各条件下索引使用情况的运行结果及分析。 目录 复合索引示例 创建表 新增数据 查询数据 选项A SQL查询 explain分析 选项B SQL查询 explain分析 选项C SQL查询 explain分析 选项D SQL查询 explain分析 选项E SQL查询…

python NLTK快速入门

目录 NLTK简介安装NLTK主要模块及用法 词汇与语料库分词与词性标注句法分析情感分析文本分类综合实例&#xff1a;简单的文本分析项目总结 1. NLTK简介 NLTK&#xff08;Natural Language Toolkit&#xff09;是一个强大的Python库&#xff0c;专门用于自然语言处理&#xff…