西安网站开发联系方式/有哪些网站可以免费推广

西安网站开发联系方式,有哪些网站可以免费推广,企业网站硬件方面建设,男女做视频观看网站环形数组 start 指向第一个有效元素的索引,end 指向最后一个有效元素的下一个位置索引。 注意: start是闭区间,先左移后赋值,先赋值(null)后右移;end是开区间,先赋值再右移,先左移再赋值(null…

环形数组

start 指向第一个有效元素的索引,end 指向最后一个有效元素的下一个位置索引。

注意: start是闭区间,先左移后赋值,先赋值(null)后右移;end是开区间,先赋值再右移,先左移再赋值(null)。

左移减一加size再取模,右移加一再取模。

JS代码实现:

class CycleArray {
constructor(size = 1) {this.size = size;this.arr = new Array(size);// start 指向第一个有效元素的索引,闭区间this.start = 0;// 切记 end 是一个开区间,// 即 end 指向最后一个有效元素的下一个位置索引this.end = 0;this.count = 0;
}resize(newSize) {// 创建新的数组var newArr = new Array(newSize);// 将旧数组的元素复制到新数组中for (var i = 0; i < this.count; i++) {newArr[i] = this.arr[(this.start + i) % this.size];}this.arr = newArr;// 重置 start 和 end 指针this.start = 0;this.end = this.count;this.size = newSize;
}// 在数组头部添加元素,时间复杂度 O(1)
addFirst(val) {// 当数组满时,扩容为原来的两倍if (this.isFull()) {this.resize(this.size * 2);}// 因为 start 是闭区间,所以先左移,再赋值this.start = (this.start - 1 + this.size) % this.size;this.arr[this.start] = val;this.count++;
}// 删除数组头部元素,时间复杂度 O(1)
removeFirst() {if (this.isEmpty()) {throw new Error("Array is empty");}// 因为 start 是闭区间,所以先赋值,再右移this.arr[this.start] = null;this.start = (this.start + 1) % this.size;this.count--;// 如果数组元素数量减少到原大小的四分之一,则减小数组大小为一半if (this.count > 0 && this.count == this.size / 4) {this.resize(this.size / 2);}
}// 在数组尾部添加元素,时间复杂度 O(1)
addLast(val) {if (this.isFull()) {this.resize(this.size * 2);}// 因为 end 是开区间,所以是先赋值,再右移this.arr[this.end] = val;this.end = (this.end + 1) % this.size;this.count++;
}// 删除数组尾部元素,时间复杂度 O(1)
removeLast() {if (this.isEmpty()) {throw new Error("Array is empty");}// 因为 end 是开区间,所以先左移,再赋值this.end = (this.end - 1 + this.size) % this.size;this.arr[this.end] = null;this.count--;// 缩容if (this.count > 0 && this.count == this.size / 4) {this.resize(this.size / 2);}
}// 获取数组头部元素,时间复杂度 O(1)
getFirst() {if (this.isEmpty()) {throw new Error("Array is empty");}return this.arr[this.start];
}// 获取数组尾部元素,时间复杂度 O(1)
getLast() {if (this.isEmpty()) {throw new Error("Array is empty");}// end 是开区间,指向的是下一个元素的位置,所以要减 1return this.arr[(this.end - 1 + this.size) % this.size];
}isFull() {return this.count === this.size;
}size() {return this.count;
}isEmpty() {return this.count === 0;
}
}

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

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

相关文章

大数据学习(59)-DataX执行机制

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

USB数据采集卡 Labview采集卡 32路AD模拟量采集 DAQ卡

今天给大家介绍阿尔泰科技的一款多功能数据采集卡USB3150/1/2/5/6 。 该板卡提供 32RSE / NRSE 通道或 16 通道 DIFF 模 拟量输入&#xff1b;4 通道模拟量同步输出&#xff1b;16 路可编程 I/O&#xff1b;2 路计数器。 USB3150/1/2/5/6 的主要应用场合为&#xff1a;电子产品…

基于DeepSeek的智能数据分析和自动化处理系统:引领BI行业新变革

近期&#xff0c;一款基于DeepSeek API的智能数据分析和自动化处理系统横空出世&#xff0c;以其强大的功能和灵活的可扩展性&#xff0c;为BI行业带来了颠覆性的变革。 该系统支持多类型数据分析&#xff0c;包括文本 、指标和日志等。在文本分析方面&#xff0c;它能够提取关…

【CentOS】搭建Radius服务器

目录 背景简介&#xff1a;Radius是什么&#xff1f;Radius服务器验证原理搭建Radius服务器环境信息yum在线安装配置FreeRADIUS相关文件clients.conf文件users文件重启服务 验证 参考链接 背景 在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器&#xff0c;做…

【AI大模型智能应用】Deepseek生成测试用例

在软件开发过程中&#xff0c;测试用例的设计和编写是确保软件质量的关键。 然而&#xff0c;软件系统的复杂性不断增加&#xff0c;手动编写测试用例的工作量变得异常庞大&#xff0c;且容易出错。 DeepSeek基于人工智能和机器学习&#xff0c;它能够依据软件的需求和设计文…

如何在vscode中编译linux中的c++文件

方式一 在终端打开进行连接编译 指令含义&#xff1a;将 muduo_server.cpp 源文件编译成一个可执行文件 server&#xff0c;并且在链接过程中使用 muduo_net、muduo_base 库以及 pthread 库 方式二 在vscode中修改配置文件 按F1打开配置文件搜索栏&#xff0c;输入C/C 打开…

基于Flink SQL的实时指标多维分析模型

数据流程介绍 1.创建源表kafka接入消息队列数据&#xff0c;定义字段映射规则&#xff1b; 2.创建目标表es_sink配置Elasticsearch输出&#xff1b; 3.通过多级视图&#xff08;tmp→tmp_dedup→tmp1/tmp2→tmp3→tmp_groupby&#xff09;实现数据清洗、去重、状态计算&#x…

【vscode-01】vscode不同项目不同语言扩展插件隔离方案

vscode不同项目不同语言扩展插件隔离方案 1. 背景2. vscode 扩展插件隔离方案2.1 code-profile 配置文件2.2 配合extensions.json 1. 背景 最近打开vscode 发现越来越卡&#xff0c;这是一个轻量级代码编辑器&#xff0c;怎么会如此占用内存呢&#xff1f; 我使用了‘code --l…

《基于大数据的营养果蔬推荐系统的设计与实现》开题报告

目录 一、选题的理论意义现实意义及应用价值 &#xff08;一&#xff09;理论意义 &#xff08;二&#xff09;现实意义 1.用户价值提升 2.效率提升 3.经济效益提升 &#xff08;三&#xff09;应用价值 1.提升用户健康水平 2.优化购物体验 3.支持健康决策 4.促进农业…

《C#上位机开发从门外到门内》2-4:Modbus协议

文章目录 一、引言二、Modbus协议概述2.1 Modbus协议的起源与发展2.2 Modbus协议的基本特点2.3 应用领域 三、Modbus通信原理详解3.1 Modbus RTU原理3.1.1 数据帧结构3.1.2 数据传输与时序3.1.3 错误检测 3.2 Modbus TCP原理3.2.1 数据封装3.2.2 通信机制3.2.3 与RTU模式的区别…

观成科技:​加密C2框架Platypus流量分析

一、工具介绍 Platypus 是一款支持多会话的交互式反向 Shell 管理器。在实际的渗透测试中&#xff0c;为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足,该工具在多会话管理的基础上增加了在渗透测试中能更好发挥作用的功能&#xff08;如&#xff1a;交互式 Sh…

WireShark自动抓包

背景 异常流量检测是当前保护网络空间安全的重要检测方法。 对流量的研究&#xff0c;首先需要在系统中进行抓包&#xff0c;并对包进行分析。 这里对WireShark自动抓包进行简要介绍。 操作步骤 1、选择“捕获”>“选项”。 2、在Input下&#xff0c;选择要抓包的网络接…

Android 自定义View之底部导航栏

文章目录 Android 自定义View之底部导航栏概述代码定义TabIndex定义Tab定义TabView定义NavigationBarFragmentSwitchHelper管理类使用 源码下载 Android 自定义View之底部导航栏 概述 封装一个通用的底部导航栏控件。 代码 定义TabIndex Retention(AnnotationRetention.SOU…

西门子S7-1200 PLC远程调试技术方案(巨控GRM532模块)

三步快速实现远程调试 硬件部署 准备西门子S7-1200 PLC、巨控GRM552YW-C模块及编程电脑。GRM552YW-C通过网口与PLC连接&#xff0c;支持4G/5G/Wi-Fi/有线网络接入&#xff0c;无需复杂布线。 软件配置 安装GVCOM3配置软件&#xff0c;注册模块&#xff08;输入唯一序列号与密…

上下文学习思维链COTPrompt工程

一、上下文学习 上下文学习强调在学习过程中考虑问题所处的上下文环境。 1.1 上下文学习的分类 零样本&#xff08;Zero-Shot&#xff09;上下文学习单样本&#xff08;One-Shot&#xff09;上下文学习少样本&#xff08;Few-Shot&#xff09;上下文学习 1.2 示例选择方法 …

node.js-WebScoket心跳机制(服务器定时发送数据,检测连接状态,重连)

1.WebScoket心跳机制是&#xff1f; 基于上一篇文章&#xff0c;WebScoket在浏览器和服务器间完成一次握手&#xff0c;两者间创建持久性连接&#xff0c;并进行双向数据连接。node.js-node.js作为服务器&#xff0c;前端使用WebSocket&#xff08;单个TCP连接上进行全双工通讯…

若依RuoYi-Cloud-Plus微服务版(完整版)前后端部署

一.目标 在浏览器上成功登录进入 二.源码下载 后端源码&#xff1a;前往Gitee下载页面(https://gitee.com/dromara/RuoYi-Cloud-Plus)下载解压到工作目录。 前端源码&#xff1a; 前往Gitee下载页面(https://gitee.com/JavaLionLi/plus-ui)下载解压到工作目录。 文档地址&a…

MistralAI挑战DeepSeek:开源模型能否颠覆行业巨头

在2025年&#xff0c;世界移动通信大会的展台上&#xff0c;MistralAI的创始人ArthurMensch对着镜头&#xff0c;露出了温和的笑容。不过他随后讲出的话&#xff0c;就仿佛一颗重磅炸弹&#xff0c;在AI领域引发了巨大的动荡——他们即将推出的开源模型&#xff0c;据传能够超越…

八叉树地图的原理与实现

八叉树与体素图 八叉树地图 八叉树地图是可变分辨率的三维栅格地图&#xff0c;可以自由调整分辨率&#xff0c;如下所示&#xff1a; 根据点云的数量或密度决定每个叶子方块是否被占据 体素图 体素就是固定分辨率的三维栅格地图&#xff0c;如下所示&#xff1a; 根据点云…

最节省服务器,手搓电子证书查询系统

用户预算150元&#xff0c;想要一个最简单证书查询系统。前台能查询证书、后台管理员能登录能修改密码&#xff0c;证书能够手动输入修改删除、批量导入导出删除数据、查询搜索。能够兼容苹果、安卓、PC三端浏览器&#xff0c;最后帮忙部署到云服务器上。 用户预算不多&#xf…