代码随想录算法训练营第五天| 总结数组专题

数组:二分查找、双指针(包括快慢指针)、滑动窗口、模拟
链表:双指针、三指针、虚拟头指针、复杂指针操作画图明确每一步(标好次序)

数组

代码随想录总结的很好,如下图。我再结合自己的一些理解总结一下
引用自代码随想录

基础

定义:数组是存放在连续内存空间上的相同类型数据的集合。
特点:数组下标都是从0开始的数组内存空间的地址是连续的
vector和array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。
c++中二维数组在地址空间上是连续的。

双指针法:循环变量不变原则

重点:1、区间的定义——是左闭右闭还是左闭右开。右开还是右闭决定了right指向的值能否被访问。确定好right指向的值能否被访问,据此确定双指针初始值、循环条件、更新值
2、mid = left + (right - left) / 2; //避免(left + right)溢出的问题

704.二分查找

只适用于有序序列

左闭右闭:

right=nums.size()-1while (left <= right);
right=middle-1;left=middle+1

左闭右开:

right=nums.size()while (left<right);
right= middleleft=middle+1

27.移除元素

快慢指针的思想是:快指针向前遍历数组,慢指针根据快指针的遍历结果来对数组进行更新。

for(fast; fast < nums.size(); fast++){if(nums[fast] != val){//nums[slow] = nums[fast];//slow++;nums[slow++] = nums[fast];}}

977.有序数组的平方

相向指针:平方后,数组由两端向中间递减,是分为有序的两段,所以用双指针从两端开始比较得到从大到小的序列。

209.长度最小的子数组

滑动窗口思想:子序列的终止位置依次向后遍历,根据当前子序列和大小的情况,不断调节子序列的起始位置。即右进左出,右指针依次向前遍历数组,左指针根据右指针的遍历结果来对数组进行维护更新。

关键词:连续子数组=》子序列,应该想到滑动窗口。

59.螺旋矩阵II

明确模拟顺时针画矩阵的过程:填充上行从左到右,填充右列从上到下,填充下行从右到左,填充左列从下到上

关键: 1、坚持循环变量不变原则 2、更新每圈的初始位置和每圈的四条边长度

总结

有序:考虑二分、双指针
连续子数组、子序列:考虑滑动窗口
模拟:坚持循环变量不变原则,更新每圈的初始位置和每圈的四条边长度

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

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

相关文章

AI 的未来是开源的

想象一下&#xff0c;在未来&#xff0c;人工智能不会被锁在公司的金库里&#xff0c;而是由全球创新者社区一砖一瓦地在开放中构建的。协作&#xff0c;而不是竞争&#xff0c;推动进步&#xff0c;道德考虑与原始绩效同等重要。这不是科幻小说&#xff0c;而是人工智能发展核…

C++I/O流——(4)格式化输入/输出(第二节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…

73.网游逆向分析与插件开发-背包的获取-物品数据的初步数据分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;72.网游逆向分析与插件开发-背包的获取-项目需求与需求拆解-CSDN博客 然后首先找切入点&#xff1a; 通过药物来当切入点&#xff0c;药物比较好使用&#xff0c;然后鼠标放到药物上它有名字、种类、…

【分布式技术】分布式存储ceph之RGW接口

目录 1、对象存储概念 2、创建 RGW 接口 //在管理节点创建一个 RGW 守护进程 #创建成功后默认情况下会自动创建一系列用于 RGW 的存储池 #默认情况下 RGW 监听 7480 号端口 //开启 httphttps &#xff0c;更改监听端口 #更改监听端口 ​ //创建 RadosGW 账户 …

【Go学习】macOS+IDEA运行golang项目,报command-line-arguments,undefined

写在前面的话&#xff1a;idea如何配置golang&#xff0c;自行百度 问题1&#xff1a;通过idea的terminal执行go test报错 ✘ xxxxxmacdeMacBook-Pro-3  /Volumes/mac/.../LearnGoWithTests/hello  go test go: go.mod file not found in current directory or any parent …

【LeetCode热题100】【子串】和为 K 的子数组

题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [1,…

Jet Brains 2023 开发者生态系统现状

一、前言 今天刷到Jet Brains官方发布了2023 开发者生态系统现状&#xff0c;这个相信大家都不陌生&#xff0c;我们的开发工具IDEA就是它旗下的。 分析的蛮不错的&#xff0c;今天整理一下&#xff0c;和大家一起分享。 有想法大家可以一起交流一下哈&#xff01; 有兴趣的…

unity SqLite读取行和列

项目文件 链接&#xff1a;https://pan.baidu.com/s/1BabHvQ-y0kX_w15r7UvIGQ 提取码&#xff1a;emsg –来自百度网盘超级会员V6的分享 using System.Collections; using System.Collections.Generic; using UnityEngine; using Mono.Data.Sqlite; using System; using Syste…

一文读懂——如何把网站改成HTTPS访问

HTTPS&#xff08;全称为Hyper Text Transfer Protocol Secure&#xff09;是一种在计算机网络上进行安全通信的协议&#xff0c;它通过SSL/TLS证书对传输数据进行加密&#xff0c;确保了用户与服务器之间信息交换的私密性和完整性。 获取SSL/TLS证书 选择证书类型&#xff1a…

构建高效数据生态:数据库、数据仓库、数据湖、大数据平台与数据中台解析_光点科技

在数字化的浪潮中&#xff0c;一套高效的数据管理系统是企业竞争力的核心。从传统的数据库到现代的数据中台&#xff0c;每一种技术都在数据的旅程中扮演着关键角色。本文将深入探讨数据库、数据仓库、数据湖、大数据平台以及数据中台的功能和价值&#xff0c;帮助您构建一个符…

《C++入门篇》——弥补C不足

文章目录 前言一.命名空间二.缺省参数三.函数重载四.引用4.1引用做参数4.2引用做返回值 五.内联函数六.小语法6.1auto6.2范围for6.3空指针 前言 C是业内一门久负盛名的计算机语言&#xff0c;从C语言发展起来的它&#xff0c;不仅支持C语言的语法&#xff0c;还新添加了面向对…

Kafka-消费者-KafkaConsumer分析-ConsumerCoordinator

在前面介绍了Kafka中Rebalance操作的相关方案和原理。 在KafkaConsumer中通过ConsumerCoordinator组件实现与服务端的GroupCoordinator的交互&#xff0c;ConsumerCoordinator继承了AbstractCoordinator抽象类。 下面我们先来介绍AbstractCoordinator的核心字段&#xff0c;如…

GO——与PHP的并发对比

背景 go比php可支持的并发数更高&#xff0c;为什么 目标 分析点&#xff1a; 系统的并发瓶颈go语言的并发瓶颈php语言的并发瓶颈 系统并发 参考&#xff1a;https://juejin.cn/post/6844904025553534990 提到并发&#xff0c;我们这里指的是web服务web系统的第一层&…

Apache JMeter 3.1压力测试监控服务器数据(cpu、内存、磁盘io等)

Apache JMeter 3.1压力测试 Apache JMeter 3.1压力测试监控cpu、内存情况1.下载Apache JMeter 3.11.1 添加线程组1.2 添加http请求1.3 增加http请求头设置1.4 添加csv配置1.5 添加测试结果监控配置 2. 监控插件下载3. 服务端插件下载并启动3.1 下载3.2 解压并启动3.3 增加服务器…

渗透测试之Kali如何利用CVE-2019-0708漏洞渗透Win7

环境: 1.攻击者IP:192.168.1.10 系统: KALI2022(vmware 16.0) 2.靶机IP:192.168.1.8 系统:Windows 7 6.1.7601 Service Pack 1 Build 7601 已开启远程协助RDP服务开启了3389端口 问题描述: KALI 如何利用CVE-2019-0708漏洞渗透Win7 解决方案: 1.打开kali,msf搜索…

【每周AI简讯】GPT-5将有指数级提升,GPT Store正式上线

AI7 - Chat中文版最强人工智能 OpenAI的CEO奥特曼表示GPT-5将有指数级提升 GPT奥特曼参加Y-Combinator W24启动会上表示&#xff0c;我们已经非常接近AGI。GPT-5将具有更好的推理能力、更高的准确性和视频支持。 GPT Store正式上线 OpenAI正式推出GPT store&#xff0c;目前…

​一套uni-app + .net医院线上预约挂号系统源码(公众号+小程序预约挂号)

线上预约挂号系统构建了医院和患者的连接&#xff0c;通过改善患者院内的就医服务流程&#xff0c;以微信公众号、支付宝小程序为患者服务入口&#xff0c;为居民提供导诊、预约、支付、报告查询等线上线下一体化的就医服务&#xff0c;缩短患者就诊环节&#xff0c;提高医疗机…

springboot第50集:File类,IO流,网络编程,反射机制周刊

image.png FileReader、FileWriter的使用 FileInputStream、FileOutputStream的使用 image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png 服务器内存优化是一个复杂的过程&#xff0c;通常需要综合考虑…

深入了解 Pytest Markers:提升测试用例的组织和控制能力

​从这篇开始&#xff0c;逐一解决fixture是啥&#xff1f;mark是啥&#xff1f;参数request是啥&#xff1f;钩子函数是啥&#xff1f;parametrize参数化是啥&#xff1f;这些问题。本片先介绍一下mark是啥&#xff1f;以及如何使用 Markers有啥用&#xff1f; 当使用 Pytest…