算法:双指针

news2024/11/16 21:53:18

数组分块

题型特点:给一个数组,在某个规则下将数组划分成几个区间
解决:双指针(数组中利用下标充当指针)

283 移动0

定义两个指针

  • dest指针(已处理区间内非0元素的最后一个位置)
  • cur指针(遍历整个数组)
  • 两个指针从左往右走时,会将数组划分成三个区间
    在这里插入图片描述
  • [0,dest]非0区间
    [dest+1,cur-1]0区间
    [cur,n-1]未处理区间
    最右边的区间不存在了,整个区间就划分成功
  • cur指针遇见非0元素,要将该元素加入到第一个区间中,dest就要向后移动一下
  • dest++后指向的一定是0元素,和cur当前的元素交换一下

1089 复写0

双指针是从异地操作,优化成就地操作
在这里插入图片描述

分析:

  • 从左向右的原地操作会覆盖一些元素
    dest在++时,会超过cur指针的位置
  • 从后向前走,dest在最后一个位置,cur在4的位置
  • 找到最后一个复写的数也要使用双指针
    cur≠0,dest向后走一步
    cur=0,dest向后走两步
  • 判断一下dest是不是最后一位
    在这里插入图片描述
  • 附加一步,如果cur指向了0,dest只需修改dest-1位置处的元素

202 快乐数

在这里插入图片描述
数有两种情况,一个是变道1(一直是1变相的也是一个环),一个是陷入一个环
变相的快慢指针

11 盛水最多的容器


分析

  • 两个指针指向数组两端,相乘得出一个体积值v1
  • 如果先去掉7,那么1乘剩下的任何数都是比v1小的
    高度不变的情况下,宽度在减小,所以1和剩下的数不用乘,肯定比v1小
  • 一直循环这个过程,会得出很多体积,保存下来比较即可
  • 总体用了v=w*h,控制变量法,让h保持不变,w减小v肯定减小,从而排除不用遍历的情况

611 有效三角形的个数

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1272610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows系列:windows server 2016 下域环境的搭建(完整版)

windows server 2016 下域环境的搭建(完整版) windows server 2016 下域环境的搭建在搭建之前简单介绍一下基础知识:一、环境介绍 :1.这里用拓扑图进行展示:2.所有环境配置如下 二、搭建主域:一. 创建主域1…

【DDD】领域驱动设计总结——如何构造领域模型

文章目录 一 分离领域二 领域对象分类2.1 实体(ENTITY)2.2 值对象(VALUE OBJECT)2.3 服务(SERVICE)2.4 模块(MODULE) 三 管理领域对象的生命周期3.1 聚合(AGGREGATE)3.2 工厂(FACTORY)3.3 存储库…

再探Java集合系列—HashMap

前面我们已经针对LinkedList和ArrayList的底层原理进行了具体研究讨论,大家可以跳链接阅读哦~ 再探Java集合系列—ArrayList-CSDN博客 再探Java集合系列—LinkedList-CSDN博客 HashMap有哪些特征呢? value可以重复,key不能重复&#xff0c…

一个数据中心的PUE修养,必将迎来液冷存储的曙光

实现小于1.3的PUE硬指标,数据中心液冷存储将功不可没。 【全球存储观察 | 科技热点关注】 4000亿千瓦时,能耗如此惊人,这是预计到2030年全国数据中心的年耗电总量。 小于1.3,看似微不足道的数字,这是新建…

鸿蒙HarmonyOS应用开发-ColumnRow组件

1 概述 一个丰富的页面需要很多组件组成,那么,我们如何才能让这些组件有条不紊地在页面上布局呢?这就需要借助容器组件来实现。 容器组件是一种比较特殊的组件,它可以包含其他的组件,而且按照一定的规律布局&#xf…

原生GPT本地及云端部署方式保姆级教程

前提条件 部署必须要有一个超过1年的Github账号 本地服务部署 运行效果 部署方法 下载安装包 暂时无法在飞书文档外展示此内容 GitHub授权登录: https://dash.pandoranext.com/ 登录后是这个样子: 复制下面红框里面这个License Id 编辑Config.js…

基于SpringBoot母婴商城

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本母婴商城系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

Postman如何使用(四):接口测试

一.接口 1.程序内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块,发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互&#…

如何选择共模噪声滤波器

在当前电子产品中,绝大多数的高速信号都使用地差分对结构。 差分结构有一个好处就是可以降低外界对信号的干扰,但是由于设计的原因,在传输结构上还会受到共模噪声的影响。 共模噪声滤波器就可以用于抑制不必要的共模噪声,而不会对…

Flutter使用flutter_gen管理资源文件

pub地址: https://pub.dev/packages/flutter_gen 1.添加依赖 在你的pubspec.yaml文件中添加flutter_gen作为开发依赖 dependencies:build_runner:flutter_gen_runner: 2.配置pubspec.yaml 在pubspec.yaml文件中,配置flutter_gen的参数。指定输出路…

Windows Terminal CMD 终端配置方案: 不只是酷炫外观

大一的时候小学期我们还是用 Windows cmd 终端写的订餐系统,尽管进我们所能地改了改配色,成品还是让人不忍直视。 当时学习遇到的大多数运行需求可以通过 IDE 解决,再加上 CMD 丑成这样,挺让人抵触的。 后来对命令行操作的学习需…

Linux下删除当前目录下的所有目录

Linux下删除当前目录下的所有目录 Linux下删除当前目录下的所有目录,可以使用命令:rm -rf ./* rm -rf ./*可以得知rm -rf ./命令是删除当前目录下的所有文件和文件夹,但不会删除根目录下的文件。其中,".“代表当前目录&…

ERP软件对Oracle安全产品的支持

这里的ERP软件仅指SAP ECC和Oracle EBS。 先来看Oracle EBS: EBS的认证查询方式,和数据库认证是一样的。这个体验到时不错。 结果中和安全相关的有: Oracle Database VaultTransparent Data Encryption TDE被支持很容易理解,…

个人成长|普通人要想摆脱贫穷,一定要注意这3点

哈喽呀,你好,我是雷工。 身为普通人,没有背景,没有资源,也没有人脉,在什么都没有的情况下如何才能摆脱贫穷,让生活过得更好。 要想自我蜕变,摆脱贫穷,就必须注意以下3点。…

C++ Primer学习笔记 第2章 变量和基本类型

2.1 基本内置类型 2.1.2 类型转换 首先了解下取模和取余的区别!!![取模与取余的区别] 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。如8bit大小的unsigned char 可以表示…

【C++ Primer Plus学习记录】循环和文本输入

目录 1.使用原始的cin进行输入 2.使用cin.get(char)进行补救 3.使用哪一个cin.get() 4.文件尾条件 循环完后的一项最常见、最重要的任务:逐字符地读取来自文件或键盘的文本。 cin对象支持3种不同模式的单字符输入,其用户接口各不相同。下面介绍如何…

低代码平台在数字化转型过程中的定位

内容来自演讲:郭昊东 | 上海外服 | 流程分析工程师 摘要 本文介绍了外服集团的 IT 共享中心在低代码平台应用开发方面的实践经验。他们选择低代码平台的原因包括开发成本低、快速看到实际产品以及能够解决数据孤岛和影子 IT 等问题。他们在应用开发中面临的挑战包括…

软考:2024年软考高级:软件工程

软考:2024年软考高级: 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1…

LeetCode Hot100 3.无重复字符的最长子串

题目: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 代码: class Solution {public int lengthOfLongestSubstring(String s) {char[] arr s.toCharArray(); // 转换成 char[] 加快效率(忽略带来的空间…

Ubuntu Server 20.04.6下Anaconda3安装Pytorch

环境 Ubuntu 20.04.6 LTS Anaconda3-2023.09-0-Linux-x86_64.sh conda 23.7.4 Pytorch 1.11.0 安装 先创建一个工作环境,环境名叫lia: conda create -n lia python3.8环境的使用方法如下: conda activate lia # 激活环境 conda deactiv…