当前位置: 首页 > news >正文

代码随想录二刷 | 数组 | 总结篇

代码随想录二刷 | 数组 | 总结篇

  • 基础知识
  • 二分查找
  • 移除元素
  • 有序数组的平方
  • 长度最小的数组
  • 最小覆盖子串
  • 螺旋数组

基础知识

定义:数组是存放在连续内存空间上的相同类型数据的集合

特点:

  • 数组下标从 0 开始
  • 数组内存空间的地址是连续的

vectorarray 的区别:vector底层实现是 array,严格来讲 vector 是容器不是数组

C++中二维数组在地址空间上是连续的

二分查找

注意循环不变量原则

  • 左闭右闭
    • right = nums.size() - 1
    • while (left <= right)
    • right = middle - 1;
    • left = middle + 1;
  • 左闭右开
    • right = nums.size()
    • while (left < right)
    • right = middle
    • left = middle + 1

移除元素

双指针法:通过一个快指针和慢指针在一个 for 循环下完成两个 for 循环的工作

相向双指针:a指针从左到右,b指针从右到左,a指针找等于目标值的位置,b指针找不等于目标值的位置,然后每次找到一个用b指针覆盖a指针

有序数组的平方

双指针法:a指针从左到右,b指针从右到左,两个指针每次比较平方的大小,大的存入结果数组并移动指针,小的停在原地

时间复杂度:O(n)
空间复杂度:O(n)

长度最小的数组

滑动窗口:双指针的变种,这一题需要两个指针都能固定住且一个指针固定,另一个可以连续变化

外层for循环更改一个指针,内层用while循环连续更新另一个指针。

时间复杂度:O(n)
空间复杂度:O(1)

最小覆盖子串

创建一个unorder_map 维护目标字符串各字母出现的次数。

再创建一个unordered_map记录遍历过中目标字符串各个字母出现的次数,方便修改并且不用在滑动窗口变化时对上一个 map 进行修改

遍历过程中如果达到目标字符串次数就收缩窗口左边界,并且记录窗口起点,当收缩的窗口不能完全覆盖目标字符串就扩展窗口右边界,直到再次能完全覆盖

当右窗口到达终点,左边界收缩完成,将此时的起点用于分割字符串

螺旋数组

对于正方形的二维数组只需要考虑转多少圈以及最后中间是否只剩一个值,如果剩一个值需要再转完圈后单独加中间的值。另外转圈过程要保持循环不变量的原则。

对于矩形二维数组编程一维数组的情况,需要在转完圈后单独考虑最内圈剩下的一行或者一列。

总结参考录友@海螺人的思维导图 代码随想录

相关文章:

代码随想录二刷 | 数组 | 总结篇

代码随想录二刷 &#xff5c; 数组 &#xff5c; 总结篇 基础知识二分查找移除元素有序数组的平方长度最小的数组最小覆盖子串螺旋数组 基础知识 定义&#xff1a;数组是存放在连续内存空间上的相同类型数据的集合 特点&#xff1a; 数组下标从 0 开始数组内存空间的地址是连…...

go test 命令详解

文章目录 1.简介2.test flag3.test/binary flags4.常用选项5.示例参考文献 1.简介 go test 是 Go 用来执行测试函数&#xff08;test function&#xff09;、基准函数&#xff08;benchmark function&#xff09;和示例函数&#xff08;example function&#xff09;的命令。 …...

【Mysql学习笔记】1 - Mysql入门

一、Mysql5.7安装配置 下载后会得到zip 安装文件解压的路径最好不要有中文和空格这里我解压到 D:\hspmysql\mysql-5.7.19-winx64 目录下 【根据自己的情况来指定目录,尽量选择空间大的盘】 添加环境变量 : 电脑-属性-高级系统设置-环境变量&#xff0c;在Path 环境变量增加mysq…...

sentinel 网关

网关简介 大家都都知道在微服务架构中&#xff0c;一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢&#xff1f;如果没有网关的存在&#xff0c;我们只能在客户端记录每个微服务的地址&#xff0c;然后分别去调用。 这样的架构&#xff0c;会存在…...

常见面试题-MySQL的Explain执行计划

了解 Explain 执行计划吗&#xff1f; 答&#xff1a; explain 语句可以帮助我们查看查询语句的具体执行计划。 explain 查出来的各列含义如下&#xff1a; id&#xff1a;在一个大的查询语句中&#xff0c;每个 select 关键字都对应一个唯一的 id select_type&#xff1a;…...

SpringBoot静态资源配置

项目中 SSM中配置 第一种&#xff1a;配置文件中 <mvc:resources mapping"/js/**" location"/js/"/> <mvc:resources mapping"/css/**" location"/css/"/> <mvc:resources mapping"/html/**" location&q…...

Java拼图

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下&#xff1a; package heima;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import jav…...

Linux 怎样通过win 远程桌面连接链接Linux后台服务器的可视化图形界面

目的概述&#xff1a;因不想后台直接操作&#xff08;操作不便&#xff09;&#xff0c;所以想到能否基于xrdp协议服务利用 win自带的远程桌面服务&#xff0c;链接到后台&#xff0c;类似于vnc的使用方式&#xff0c;涉及操作系统版本&#xff1a;win11 、 CentOS 7.4 、CentO…...

Java 实现随机图形

要求 定义4个类&#xff0c;MyShape、MyLine、MyRectangle和MyOval&#xff0c;其中MyShape是其他三个类的父类。MyShape为抽象类&#xff0c;包括图形位置的四个坐标&#xff1b;一个无参的构造方法&#xff0c;将所有的坐标设置为0&#xff1b;一个带参的构造函数&#xff0…...

java 读写文件的代码。

java 读写文件的代码。 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStr…...

如何使用贝锐花生壳内网穿透远程访问JupyterNotebook?

在数据科学领域&#xff0c;Jupyter Notebook 已成为处理数据的必备工具。 其用途包括数据清理和探索、可视化、机器学习和大数据分析。Jupyter Notebook的安装非常简单&#xff0c;如果你是小白&#xff0c;那么建议你通过安装Anaconda来解决Jupyter Notebook的安装问题&#…...

文本向量化

文本向量化表示的输出比较 import timeimport torch from transformers import AutoTokenizer, AutoModelForMaskedLM, AutoModel# simcse相似度分数 def get_model_output(model, tokenizer, text_str):"""验证文本向量化表示的输出:param model: 模型的…...

java--贪吃蛇

import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Random;public class Snake extends JFrame implements KeyListener, ActionListener, MouseListener {int slong 2;//蛇当前长度//蛇坐标int[] Snakex new int[100];int[] Snakey new…...

录制第一个jmeter性能测试脚本2(http协议)

我们手工编写了一个测试计划&#xff0c;现在我们通过录制的方式来实现那个测试计划。也就是说‘’测试计划目标和上一节类似&#xff1a;让5个用户在2s内登录webtour&#xff0c;然后进入 页面进行查看。 目录 一.性能测试脚本录制的原理 二、性能测试脚本录制的实操&#…...

pip命令大全

pip命令手册 原版 Usage: pip <command> [options]Commands:install Install packages.download Download packages.uninstall Uninstall packages.freeze Output installed packages…...

Redis篇---第二篇

系列文章目录 文章目录 系列文章目录前言一、为什么 使用 Redis 而不是用 Memcache 呢?二、为什么 Redis 单线程模型效率也能那么高?三、说说 Redis 的线程模型前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…...

【LeetCode刷题日志】232.用栈实现队列

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…...

单元测试实战(二)Service 的测试

为鼓励单元测试&#xff0c;特分门别类示例各种组件的测试代码并进行解说&#xff0c;供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战&#xff08;一&#xff09;Controller 的测试 单元测试实战&#xff08;二&#xff09;Service 的测试 单元测试实战&#x…...

LabVIEW和NIUSRP硬件加快了认知无线电开发

LabVIEW和NIUSRP硬件加快了认知无线电开发 对于电视频谱&#xff0c;主用户传输有两种类型&#xff1a;广播电视和节目制作和特殊事件(PMSE)设备。广播塔的位置已知&#xff0c;且覆盖电视传输塔&#xff08;复用器&#xff09;附近的某个特定地理区域&#xff08;称为排除区域…...

嵌入式软件工程师面试题——2025校招社招通用(十六)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…...

手把手教你用WouoUI-PageVersion打造128*64 OLED炫酷UI(附Air001移植避坑指南)

嵌入式UI开发实战&#xff1a;WouoUI-PageVersion在128*64 OLED屏上的高效移植与优化 在资源受限的嵌入式设备上实现流畅的UI动画一直是个技术挑战。本文将带你深入探索如何利用WouoUI-PageVersion框架&#xff0c;在仅有4KB RAM和32KB Flash的Air001等微控制器上&#xff0c;打…...

【2026年最新600套毕设项目分享】springboot仁和机构的体检预约系统(14336)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

从选题到发布全托管:我用OpenClaw搭建了个人自媒体AI流水线

一、引言&#xff1a;内容创作者的普遍痛点 作为技术博主&#xff0c;相信很多人都遇到过这些问题&#xff1a; 选题焦虑&#xff1a;每天花1-2小时刷各大平台找热点&#xff0c;不知道写什么内容读者喜欢效率低下&#xff1a;写一篇技术文章需要查资料、写内容、排版、配图、同…...

个人信息保护:使用AI工具必须知道的隐私安全指南

个人信息保护的重要性AI工具的普及带来了便利&#xff0c;但也存在隐私泄露风险。未经保护的个人信息可能被滥用&#xff0c;导致身份盗窃、诈骗等问题。了解隐私安全措施至关重要。选择可信的AI工具优先选择有明确隐私政策、数据加密措施的工具。查看工具是否通过第三方安全认…...

CANOE进阶:CAPL文件读写实战与数据持久化策略

1. CAPL文件读写在车载测试中的核心价值 第一次接触CAPL文件读写功能时&#xff0c;我正负责一个车载ECU的耐久性测试项目。当时需要连续记录72小时的CAN报文数据&#xff0c;如果仅靠CANoe的Trace窗口查看&#xff0c;不仅效率低下&#xff0c;后期分析更是无从下手。这时我才…...

【西瓜带你学设计模式 | 第十二期 - 装饰器模式】装饰器模式 —— 动态叠加功能实现、优缺点与适用场景

文章目录前言1. 装饰器模式是什么&#xff1f;2. 装饰器模式解决什么问题&#xff1f;3. 实现步骤4. 静态结构4.1 抽象组件&#xff1a;Coffee&#xff08;统一接口&#xff09;4.2 具体组件&#xff1a;SimpleCoffee&#xff08;基础咖啡&#xff09;4.3 装饰器抽象类&#xf…...

火焰目标检测数据集该数据集为原始数据集,未经任何图像预处理操作数据集共计8869张图片,分别有对应的标签数据集已划分为训练集、验证集和测试集训练集有图片7767张图片、验证集730张图片、测试

火焰目标检测数据集 该数据集为原始数据集&#xff0c;未经任何图像预处理操作 数据集共计8869张图片&#xff0c;分别有对应的标签 数据集已划分为训练集、验证集和测试集 训练集有图片7767张图片、验证集730张图片、测试集372张图片 数据集包括txt格式、xml格式、json格式 相…...

SAP PP顾问必看:手把手教你用增强PPCO0001实现CO02工单变更记录(附完整ABAP代码)

SAP PP顾问实战&#xff1a;深度解析PPCO0001增强实现CO02工单变更审计 在制造业SAP实施项目中&#xff0c;生产工单的变更追踪一直是合规审计的重点难点。当用户通过CO02事务码修改工单时&#xff0c;标准系统提供的变更记录功能存在明显局限——既无法满足精细审计需求&…...

使用PHP和Xunsearch实现歌曲搜索功能

要打造一款高效的音乐网站&#xff0c;搜索功能绝对是重中之重&#xff01;试想一下&#xff0c;当用户打开你的音乐网站&#xff0c;输入一首歌名&#xff0c;却发现搜索结果不仅慢&#xff0c;还不精准&#xff0c;那简直就是“用户流失现场”&#xff01;今天我们聊聊如何用…...

基于模糊控制的改进DWA算法功能详解

改进动态窗口DWA算法&#xff0c;模糊控制自适应调整评价因子权重&#xff0c;matlab代码 这段代码是一个基于动态窗口法&#xff08;Dynamic Window Approach&#xff0c;DWA&#xff09;的路径规划算法的实现。下面我将对代码进行分析&#xff0c;并解释算法的优势、需要注意…...