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

9.5LeetCode

80.删除有序数组重复项II

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

 思路:和删除有序数组的重复项1很相似,1是不允许有两个一样的元素,而2是不允许有三个一样的元素,这就需要额外定义一个len来管理长度问题了,如果出现两个以上相等的元素,便不会进入if语句中,不会更改nums数组。

class Solution {
public:int work(vector<int>& nums){int len=0;for(int i=0;i<nums.size();i++){if(len<2||nums[len-2]!=nums[i]){nums[len++]=nums[i];}}return len;}int removeDuplicates(vector<int>& nums) {int res=work(nums);return res;}
};

 189.轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 

 这个是LeetCode的官方解答,是通过额外的数组来进行轮转的,首先定义一个额外数组,然后将遍历原数组将元素放到正确的位置上,最后用vector中的assign函数,将额外数组的元素赋值到nums中。  

class Solution {
public:void rotate(vector<int>& nums, int k) {int n=nums.size();vector<int> newArr(n);for(int i=0;i<n;i++){newArr[(i+k)%n]=nums[i];    //这是通过额外数组将每个元素放到正确位置}nums.assign(newArr.begin(),newArr.end());}
};

二、小米笔试

1.堆排序的最好,最坏,平均复杂度排序

最好==最坏==平均复杂度

2.HTTP的持久化连接

HTTP 的持久化连接(也称为 HTTP keep-alive)是一种在单个 TCP 连接上发送和接收多个 HTTP 请求和响应的技术。

一、作用与优势 减少连接建立的开销: 在没有持久化连接的情况下,每次 HTTP 请求都需要建立一个新的 TCP 连接,而建立连接的过程包括三次握手等操作,会消耗一定的时间和资源。使用持久化连接可以避免频繁地建立和关闭连接,从而减少了连接建立的时间开销。 提高性能: 由于减少了连接建立的次数,整体的传输效率得到提高。特别是对于需要发送多个请求的场景,如加载一个包含多个图片、脚本和样式表的网页,持久化连接可以显著提高页面加载速度。 降低服务器负载: 服务器不需要为每个请求都进行连接的建立和关闭操作,减少了服务器的资源消耗和处理负担,能够更好地处理大量并发请求。

二、工作原理 连接建立: 当客户端发起第一个 HTTP 请求时,会在请求头中包含一个支持持久化连接的标识,例如 “Connection: keep-alive”。如果服务器也支持持久化连接,它会在响应头中同样设置这个标识,表示同意建立持久化连接。 此时,TCP 连接在完成第一个请求和响应后不会立即关闭,而是保持打开状态,以便后续的请求和响应可以复用这个连接。 请求和响应复用连接: 客户端可以在同一个连接上连续发送多个 HTTP 请求,每个请求之间不需要等待连接的建立。 服务器接收到请求后,依次处理并返回响应,同样通过这个连接进行传输。 连接关闭: 持久化连接不会一直保持打开状态,有以下几种情况会导致连接关闭: 客户端或服务器主动关闭连接:客户端可以在请求头中设置 “Connection: close” 来表明本次请求后关闭连接;服务器也可以在响应头中设置这个标识来通知客户端关闭连接。 超时:如果在一定时间内没有任何请求或响应通过连接传输,连接可能会因为超时而被关闭。这个超时时间可以由服务器或客户端配置。 错误情况:如果在连接上发生了网络错误或其他异常情况,连接可能会被关闭。

3.在首尾添加数据频繁的应用场景下,可以使用带有尾指针的单链表来实现

4.aaababcaabbc 这个字符串的next数组?

459.重复的子字符串

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

 对于如何构建的前缀表要注意

class Solution {
public:void getNext(vector<int>& next,string& s){//前缀表int j=0;next[0]=0;for(int i=1;i<s.size();i++){while(j>0&&s[j]!=s[i]){j=next[j-1];}if(s[i]==s[j]){j++;}next[i]=j;}}bool repeatedSubstringPattern(string s) {vector<int> next(s.size()+1);getNext(next,s);int num=s.size();if(next[num-1]!=0&&num%(num-next[num-1])==0){return true;}return false;}
};

5.在计算机中使用分页式管理来存储可以有效解决内存碎片的问题

6.在dubug中resume的作用

当程序在调试过程中被暂停(例如通过设置断点或者遇到异常)时,使用 “resume” 指令可以让程序继续执行下去,直到遇到下一个断点或者程序正常结束。

7.快速排序过程要牢记

相关文章:

9.5LeetCode

80.删除有序数组重复项II 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的…...

数据仓库系列13:增量更新和全量更新有什么区别,如何选择?

你是否曾经在深夜加班时&#xff0c;面对着庞大的数据仓库&#xff0c;思考过这样一个问题&#xff1a;“我应该选择增量更新还是全量更新&#xff1f;” 这个看似简单的选择&#xff0c;却可能影响整个数据处理的效率和准确性。今天&#xff0c;让我们深入探讨这个数据仓库领域…...

数据 结构(内核链表)

一、内核链表&#xff08;是一个有头双向循环链表&#xff09; 1.内核提供的两个宏 (1) offsetof : 获取结构体成员到结构体开头的偏移量&#xff1b; (2) contianer_of : 通过偏移量获取结构体首地址&#xff1b; 2.代码示例&#xff1a; truct passager *create_passage…...

学习node.js十三,文件的上传于下载

文件上传 文件上传的方案&#xff1a; 大文件上传&#xff1a;将大文件切分成较小的片段&#xff08;通常称为分片或块&#xff09;&#xff0c;然后逐个上传这些分片。这种方法可以提高上传的稳定性&#xff0c;因为如果某个分片上传失败&#xff0c;只需要重新上传该分片而…...

【刷题笔记】删除并获取最大点数粉刷房子

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 题目一 题目链接&#xff1a;删除并获取最大点数 思路&#xff1a; 预处理状态表示 状态转移方程 代码如下&#xff1a; class Solution { public:int deleteAndEarn(vector<int>& nums) {int N1…...

【Linux 从基础到进阶】Elasticsearch 搜索服务安装与调优

Elasticsearch 搜索服务安装与调优 引言 Elasticsearch 是一个分布式的、基于 RESTful API 的搜索和分析引擎,专为快速处理大量数据而设计。它经常被用来进行全文搜索、日志和指标分析等操作。本文将介绍如何在 CentOS 和 Ubuntu 系统上安装 Elasticsearch,并进行必要的调优…...

IMU助力JAXA空间站机器人

近日&#xff0c;日本宇宙航空研究开发机构&#xff08;JAXA&#xff09;宣布&#xff0c;在国际空间站&#xff08;ISS&#xff09;实验舱“希望号”&#xff08;Kibo&#xff09;上部署的一款移动摄像机器人将采用Epson M-G370系列惯性测量单元&#xff08;IMU&#xff09;。…...

java开发,记录一些注解和架构

最近接了一个项目&#xff0c;说是项目其实也不算是项目&#xff0c;因为是把这个项目赛到其他项目中的。 熟悉一些这个项目的功能&#xff0c;梳理了一下&#xff0c;在代码开发中主要关心pojo、entity、respository、controller、service。 在这里主要记录前3个的流程与作用…...

【2024高教社杯全国大学生数学建模竞赛】B题 生产过程中的决策问题——解题思路 代码 论文

目录 问题 1&#xff1a;抽样检测方案的设计问题 2&#xff1a;生产过程中的决策问题 3&#xff1a;多工序、多零配件的生产决策问题 4&#xff1a;重新分析次品率题目难度分析1. 统计检测方案设计的复杂性&#xff08;问题 1&#xff09;2. 多阶段生产决策的复杂性&#xff08…...

JUnit 5和Mockito进行单元测试!

1. JUnit 5 基础 JUnit 5是最新的JUnit版本&#xff0c;它引入了许多新特性&#xff0c;包括更灵活的测试实例生命周期、参数化测试、更丰富的断言和假设等。 1.1 基本注解 Test&#xff1a;标记一个方法为测试方法。 BeforeEach&#xff1a;在每个测试方法之前执行。 AfterEac…...

LeetCode 算法:完全平方数 c++

原题链接&#x1f517;&#xff1a;完全平方数难度&#xff1a;中等⭐️⭐️ 题目 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的…...

深入CSS 布局——WEB开发系列29

CSS 页面布局技术允许我们拾取网页中的元素&#xff0c;并且控制它们相对正常布局流、周边元素、父容器或者主视口/窗口的位置。 一、正常布局流&#xff08;Normal Flow&#xff09; CSS的布局基础是“正常流”&#xff0c;也就是页面元素在没有特别指定布局方式时的默认排列…...

视频的容器格式和编码格式详解

视频的容器格式和编码格式是视频文件的两个核心概念&#xff0c;它们相互关联但具有不同的功能。以下是详细的解释&#xff1a; 1. 容器格式 (Container Format) 容器格式&#xff0c;又称封装格式&#xff0c;指的是视频文件的外壳或容器&#xff0c;它用于封装视频、音频、…...

Elasticsearch Mapping 详解

1 概述 映射的基本概念 Mapping 也称之为映射&#xff0c;定义了 ES 的索引结构、字段类型、分词器等属性&#xff0c;是索引必不可少的组成部分。 ES 中的 mapping 有点类似与DB中“表结构”的概念&#xff0c;在 MySQL 中&#xff0c;表结构里包含了字段名称&#xff0c;字…...

WPF 利用视觉树获取指定名称对象、指定类型对象、以及判断是否有验证错误

1.利用视觉树获取指定名称对象 /// <summary> /// Finds a Child of a given item in the visual tree. /// </summary> /// <param name"parent">A direct parent of the queried item.</param> /// <typeparam name"T">T…...

了解`re`模块的`split()`, `sub()`, `subn()`方法的作用

在Python中&#xff0c;re模块&#xff08;即正则表达式模块&#xff09;提供了强大的字符串处理能力&#xff0c;允许你通过模式匹配来执行复杂的文本搜索、替换和分割等操作。其中&#xff0c;split(), sub(), 和 subn() 方法是re模块中非常实用的几个函数&#xff0c;它们各…...

机器学习交通流量预测实现方案

机器学习交通流量预测实现方案 实现方案 1. 数据预处理 2. 模型选择 3. 模型训练与评估 代码实现 代码解释 小结 &#x1f388;边走、边悟&#x1f388;迟早会好 交通流量预测是机器学习在智能交通系统中的典型应用&#xff0c;通常用于预测道路上的车辆流量、速度和拥…...

QNN:基于QNN+example重构之后的yolov8det部署

QNN是高通发布的神经网络推理引擎&#xff0c;是SNPE的升级版&#xff0c;其主要功能是&#xff1a; 完成从Pytorch/TensorFlow/Keras/Onnx等神经网络框架到高通计算平台的模型转换&#xff1b; 完成模型的低比特量化&#xff08;int8&#xff09;&#xff0c;使其能够运行在高…...

Redis实战宝典:开发规范与最佳实践

目录标题 Key命名设计&#xff1a;可读性、可管理性、简介性Value设计&#xff1a;拒绝大key控制Key的生命周期&#xff1a;设定过期时间时间复杂度为O(n)的命令需要注意N的数量禁用命令&#xff1a;KEYS、FLUSHDB、FLUSHALL等不推荐使用事务删除大key设置合理的内存淘汰策略使…...

RPC的实现原理架构

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种允许程序调用位于不同地址空间或网络上的函数或方法的技术&#xff0c;尽管这些调用看起来像是本地调用。RPC 的实现极大地简化了分布式系统中的通信&#xff0c;避免了开发人员直接处理底层网…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...