首页 > 其他分享 >双指针维护笔记

双指针维护笔记

时间:2024-10-19 08:59:47浏览次数:1  
标签:排序 指向 笔记 单词 维护 移动 指针

双指针维护笔记

双指针特指两个指针共同维护一个数组:
从两端分别维护,从同一端点交叉维护

从两端分别维护:

例:快速排序,(从小到大排序)

在快速排序中,我们安排了两个指针从需要排序的数组的左右两端开始向中间移动

更新方式是,当 i 指针从左向右移动,j 指针从右向左移动时,若 i 的值大于 j 的值

则交换 i j 两个指针各自指向的值,继续向中间逼近,直到 i j 相遇

从同一端点交叉维护:

例:输入 n 个单词,用空格隔开,输出每行一个单词

我们令有 i j 两个指针,一开始都指向字符串组的 char[0]

首先固定一个指针 j ,指针 i 开始向右移动

更新方式是,当 i 指针指向的值为 ‘ ‘ (空格)时,两个指针中间的char段则为第一个单词

然后将 j 同步到 i 的位置并向右移动一个单位,使得 j 指向下一个单词的首字母,继续执行 i 向右移动的操作

在每次过程中输出的操作不言而喻

复杂度解释:

双指针算法可以将时间复杂度On2 优化至On

可以做个简单推导:

//朴素算法
for (int i=0;i<n,i++){
	for (int j=0;j<n;j++){
		if (check(j,i))
		......
	}
}
//双指针算法
for (int i=0;i<n;i++){
	while (j<=i&&check(j,i)){
		......
	}
}

标签:排序,指向,笔记,单词,维护,移动,指针
From: https://www.cnblogs.com/dianman/p/18475470

相关文章

  • 沃顿商学院全套笔记-五-
    沃顿商学院全套笔记(五)【沃顿商学院】商业分析全套课程(客户、运营、人力资源、会计)-P41:[P041]02_optimizing-with-solver-知识旅行家-BV1o54y1N7pm我是谢尔盖七号,我们开始第二次会议,操作分析课程第二周,在第一次会议上,我们看了Zooter的例子,资源分配问题,在这种情况下,有限的......
  • 沃顿商学院商业人工智能笔记-七-
    沃顿商学院商业人工智能笔记(七)P6:5_数据管理基础设施.zh_en-GPT中英字幕课程资源-BV1Ju4y157dK欢迎回来。在本次会议中,我们将深入探讨数据基础设施。公司在开展大规模AI驱动的业务之前需要做好准备。转型。为了帮助我们理解公司需要什么样的数据基础设施。我们已经准备......
  • 沃顿商学院商业人工智能笔记-六-
    沃顿商学院商业人工智能笔记(六)P46:12_简介.zh_en-GPT中英字幕课程资源-BV1Ju4y157dK嗨,我是迈克尔·罗伯茨。我是威廉·H·罗伯茨教授。我是宾夕法尼亚大学沃顿商学院的金融学劳伦斯教授。在这一系列视频中,我们将讨论金融、机器学习。以及人工智能。因此,当我想到金融、数......
  • 沃顿商学院商业人工智能笔记-九-
    沃顿商学院商业人工智能笔记(九)P82:19_更广泛的隐私和伦理问题.zh_en-GPT中英字幕课程资源-BV1Ju4y157dK所以让我们讨论一下关于使用数据科学和人工智能的一些更广泛的问题。一般来说,在工作场所管理人际关系。这些是伦理问题,也是隐私问题。所以让我们谈谈这些问题以及它们......
  • 沃顿商学院商业人工智能笔记-三-
    沃顿商学院商业人工智能笔记(三)P123:22_AI的风险.zh_en-GPT中英字幕课程资源-BV1Ju4y157dK在这次讲座中,我们将讨论AI的一些风险。我将以一个简单的统计风险开始,它有重要的管理意义。然后我会谈论社会和伦理风险。所以我想讨论的第一个风险是过拟合风险。现在,许多复杂的高......
  • 一.介绍函数指针数组 二.函数指针数组的使用
    一我们先来看这个这里面的四个函数都分别存放在函数指针变量中,而且这些函数的指针类型都一模一样那我们就可以搞出一个函数指针数组,来存放这些函数的地址 函数指针数组的写法从函数指针的基础上去写是最容易的想让他成为数组,我们可以在变量p后面加一个[],p就和[]结合了,就说明......
  • 算法笔记 C/C++快速入门 | 全章节整理
    目录零.【C语言中的输入和输出函数】sscanf应用场景1:解析用户输入应用场景2:解析文件内容应用场景3:处理网络协议数据应用场景4:字符串解析和数据转换应用场景5:解析复杂的日志数据其他应用场景:scanf 一【编程语言相关】c和cpp二.【数据结构相关】结构体循环定......
  • C语言指针
    1.程序中地址与指针实例讲解Hi!欢迎来到指针的世界,也许您早已听过它的大名,指针被称为是C语言的精华所在。真正理解和掌握指针是征服C语言的关键所在!在众多的计算机语言中,试问:还有哪门语言可以有C语言这样在作用、速度和安全上平衡得如此优异的呢?而指针则在其中扮演了重要的角......
  • 2024/10/18日 日志 --》关于MySQL中的 事务 以及JDBC的初步学习笔记与整理
    今天学习练习了事务的相关内容,并正式向连接数据库走近,进入到JDBC的学习。点击查看代码--事务--概念简介:是一种机制,一个操作序列,包含了一组数据库操作命令。-- 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,--即这一组数据库命令要么同时成功,要么同时失......
  • RabbitMQ系列学习笔记(八)--发布订阅模式
    文章目录一、发布订阅模式原理二、发布订阅模式实战1、消费者代码2、生产者代码3、查看运行结果本文参考:尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmqRabbitMQ详解Centos7环境安装Erlang、RabbitMQ详细过程(配图)一、发布订阅模式原理在开发过程中,有一......