LeetCode---循环队列

d6c3a41f4bb648a3be6cba0403059509.jpg

循环队列就是只有固定的内存,存数据,出数据,但是也和队列一样,先进先出。如下图所示,这是他的样子5cb7507c12af45338d0a734baed98da1.jpg

 在head出,tail进,但是这个如果用数组解决的话,就有问题,力扣给我们的接口有一个判空和判满,如果我们k等于4,那创造一个大小为4的数组,head和tail都等于0,所以队尾等于,tail减一,当head和tail相等时,该数组为空,但是当这个数组满了的时候,head和tail也是相等的,那怎么办呢?我们有两个解决方案,第一,设置一个size,第二,给数组多创建一个空间,如果k为4,那我们就把数组的大小设置为5。这样,我们实际上k的大小不变,但是每次都会多留一个空间,让head和tail保持不同。ae3a03bb1e3044cdbde39aa3834b6439.jpg

 这样就很好的解决了判空和判满冲突的问题。那么问题又来了,我们该如何解决回绕的问题呢,答案就是模上k加一,我们来分析一下,e0bcc08221f24e04843867a780cf0d09.jpg 想要插入4,这时tail等于4,我们再插入数据,就要面对回绕问题,所以我们将tail加一模上k加一如果小于k加一的话,数字不变,但是等于k加一的话,就会等于0。这样,tail就很巧妙的回到了下标为0的地方。很好的解决了回绕的困扰。

这样我们的顾虑都解决了,所以我们看看代码吧。

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

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

相关文章

libx265的交叉编译

目标平台:aarch64 编译器版本:aarch64-linux-gnu- 操作系统:麒麟v10 CPU:rk3588 为了方便编译aarch64版本,建议x265版本选择3.5版本,此版本build中包含了aarch64配置选项,比较码放。下载地…

Building3D An Urban-Scale Dataset and Benchmarks 论文阅读

文章主页 Building3D 任务 提出了一个城市规模的数据集,由超过 16 万座建筑物以及相应的点云、网格和线框模型组成,覆盖爱沙尼亚的 16 个城市,面积约 998 平方公里。 动机 现有的3D建模数据集主要集中在家具或汽车等常见物体上。缺乏建…

CAPL入门之使用CAPL记录测试Logging

0 前言 以往测试的log都是直接从trace导出,但是最近发现trace中能导出的数据是有限的,如果测试的时间过长,新的数据就会把之前的数据全部覆盖,并且对于长时间的测试,直接导出trace的内容也会造成查找效率低下的问题。因…

centos7下使用docker安装fastdfs服务

先查看容器是否已经存在 docker ps -a 删除掉之前的tracker及storage服务 docker rm tracker docker rm storage 1、没有镜像先下载镜像 docker pull morunchang/fastdfs 2、运行服务 a、不指定物理服务器路径 docker run -d --name tracker --nethost morunchang/fastdfs sh…

Java面试八股之String s = “String“;和String s = new String(“String“);有什么区别

Java中String s "String";和String s new String("String");有什么区别 字符串字面量("String"): 常量池:使用字面量方式创建字符串时,Java虚拟机(JVM)会在运…

什么是Java中的设计模式?请列举几种常见的设计模式

一、引言 在软件开发中,设计模式是解决特定设计问题的最佳实践或通用解决方案。Java作为一种广泛使用的编程语言,其设计模式在软件设计和架构中起着至关重要的作用。设计模式不仅提高了代码的可读性和可维护性,还使得代码更加灵活和可扩展。…

Jmeter接口测试之参数化

在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目的是为了模拟真实的用户场景,需要模拟不同的账号,这里…

「TypeScript系列」TypeScript变量声明

文章目录 一、TypeScript 变量声明二、TypeScript 变量作用域1. 全局作用域2. 函数作用域(局部作用域)3. 块级作用域4. 模块作用域 三、TypeScript 类型断言四、TypeScript 类型推断1. 类型推断的示例变量类型推断函数参数和返回值的类型推断 2. 类型推断…

28、Flink 为管理状态自定义序列化

为管理状态自定义序列化 a)概述 对状态使用自定义序列化,包含如何提供自定义状态序列化程序、实现允许状态模式演变的序列化程序。 b)使用自定义状态序列化程序 注册托管 operator 或 keyed 状态时,需要 StateDescriptor 来指…

从零学算法14

14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:strs [“d…

算法练习第21天|216.组合总和|||、17.电话号码的字母组合

216.组合总和 III 216. 组合总和 III - 力扣(LeetCode)https://leetcode.cn/problems/combination-sum-iii/ 题目描述: 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一…

北亚MF2200手机取证平台介绍

一、产品介绍。 北亚MF2200手机取证平台是由北亚企安科技(北京)有限公司(Frombyte)自主研发的一款针对智能手机(iPhone、Android)及 iPad 取证分析的法证平台。本平台采集速度快,可通过自动提取…

【VUE】VUE3绘制箭头组件

效果预览&#xff1a; 长、宽、粗细等等根据情况合理调整即可。 组件&#xff1a; <template><div class"line" :style"props.arrowsColor"></div> </template><script setup> import { defineProps, ref, onMounted } fr…

为什么使用AI 在游戏中不犯法

使用AI在游戏中本身并不违法&#xff0c;甚至在很多情况下&#xff0c;游戏公司自己也会在游戏中集成AI来提高游戏体验&#xff0c;例如通过AI驱动的非玩家角色&#xff08;NPC&#xff09;来增加游戏的互动性和挑战性。然而&#xff0c;使用AI是否违法取决于AI的使用方式和目的…

36. 有效的数独 - 力扣(LeetCode)

基础知识要求&#xff1a; Java&#xff1a;方法、for循环、if判断、数组 Python&#xff1a; 方法、for循环、if判断、列表、集合 题目&#xff1a; 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一…

word2019 64位 NoteExpress突然无法使用解决方法

之前用的好好的&#xff0c;去除格式化运行过一次。 打开别的文档&#xff0c;突然发现红框中的图标全变灰了 根据教程添加 加载项&#xff0c;然后word以管理员身份重启&#xff0c;NE也以管理员身份运行&#xff0c;又可以了 然后突然又不行了&#xff0c;重启电脑后NE变成…

Android Studio开发之路(十二)image、byte[]、mat、Bitmap几种格式互转合集

一、知识点 Camerax中的 imageCapture用例默认的image格式是JPEG, 而ImageAnalysis用例默认的image格式是YUV_420_888. 二、ImageAnalysis用例中ImageProxy转mat YUV转Mat 三、imageCapture中image专byte[] 如下边代码&#xff0c; //拍照&#xff0c;保存到内存 private…

普中STM32F103ZET6开发板让DS0和DS1两个LED同时亮

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.运行效果 一.前言 在这套stm32教程中,只教学了如何亮DS0,而没有教学如何亮DS1。 二.代码 main.c #include "stm32f10x.h"void Syst

jQuery的选择器与自带函数详解

在前端开发中&#xff0c;jQuery是一个广泛使用的JavaScript库&#xff0c;它极大地简化了HTML文档遍历、事件处理、动画以及AJAX交互等操作。本文将通过一个示例页面&#xff0c;详细介绍jQuery的选择器和一些常用的自带函数。 示例代码优化 首先&#xff0c;我们来优化和完…

flowable多对并发网关跳转的分析

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…