【每日刷题】Day39

【每日刷题】Day39

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 622. 设计循环队列 - 力扣(LeetCode)

2. 387. 字符串中的第一个唯一字符 - 力扣(LeetCode)

3. 2073. 买票需要的时间 - 力扣(LeetCode)

1. 622. 设计循环队列 - 力扣(LeetCode)

//思路:顺序表。

typedef int QDataType;


 

typedef struct//循环队列结构体,包含有一数组,指向头和尾的变量head和tail,数组有效长度k

{

    QDataType* arr;

    int head;

    int tail;

    int k;

} MyCircularQueue;


 

MyCircularQueue* myCircularQueueCreate(int k)//创建循环队列并初始化

{

    MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));

    obj->arr = malloc(sizeof(QDataType)*(k+1));

    obj->head = obj->tail = 0;

    obj->k = k;

    return obj;

}

bool myCircularQueueEnQueue(MyCircularQueue* obj, int value)//入列

{

    if((obj->tail+1)%(obj->k+1)==obj->head)//循环队列判满

    {

        return false;

    }

    obj->arr[obj->tail++] = value;//入列

    obj->tail%=(obj->k+1);//设计为循环,当越界时可以回到0

    return true;

}

bool myCircularQueueDeQueue(MyCircularQueue* obj)//出列

{

    if(obj->head==obj->tail)//判空

    {

        return false;

    }

    obj->head++;

    obj->head%=(obj->k+1);//同样是设计为循环,越界时回到0

    return true;

}

int myCircularQueueFront(MyCircularQueue* obj)//获取队头元素

{

    if(obj->head==obj->tail)//判空

    {

        return -1;

    }

    return (obj->arr[obj->head]);

}

int myCircularQueueRear(MyCircularQueue* obj)//获取队尾元素

{

    if(obj->head==obj->tail)//判空

    {

        return -1;

    }

    return obj->arr[(obj->tail+obj->k)%(obj->k+1)];//这里比较难懂,可以原式是((obj->tail-1+k+1)%(k+1)),这里目的是为了处理tail为0时-1越界的情况

}

bool myCircularQueueIsEmpty(MyCircularQueue* obj)//判空

{

    return (obj->tail==obj->head);

}

bool myCircularQueueIsFull(MyCircularQueue* obj)//判满

{

    return (obj->tail+1)%(obj->k+1)==obj->head;

}

void myCircularQueueFree(MyCircularQueue* obj)//释放

{

    free(obj->arr);

    free(obj);

}

2. 387. 字符串中的第一个唯一字符 - 力扣(LeetCode)

//思路:二次遍历。第一次遍历用哈希表存储字符出现的次数,第二次遍历根据哈希表判断该字符出现的次数,来判断是否为答案

int firstUniqChar(char* s)

{

    int hash[26] = {0};

    int i = 0;

    for(i = 0;i<strlen(s);i++)//存储每个字符出现的个数

    {

        hash[s[i]-'a']+=1;

    }

    for(i = 0;i<strlen(s);i++)

    {

        if(hash[s[i]-'a']==1)//找到只出现一次的字符返回下标

        {

            return i;

        }

    }

    return -1;

}

3. 2073. 买票需要的时间 - 力扣(LeetCode)

//思路:循环遍历数组。

int timeRequiredToBuy(int* tickets, int ticketsSize, int k)

{

    int ans = 0;

    int i = 0;

    while(tickets[k]!=0)//第k个人没买完票循环继续

    {

        if(tickets[i]!=0)//每一个人买票,时间+1

        {

            ans++;

            tickets[i]--;

        }

        i++;

        i%=ticketsSize;//当遇到数组末尾时,回到头,模拟排队

    }

    return ans;

}

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

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

相关文章

百度云防护502 Bad Gateway原因总结和处理方法

最近&#xff0c;随着原百度云加速用户新接入百度云防护后&#xff0c;很多站长反馈网站打不开&#xff0c;出现了502 Bad Gateway的情况。 为此&#xff0c;百度云这里给大家总结下&#xff0c;出现502的大概几个原因&#xff1a; 1.服务器防火墙拦截了百度云防护的IP节点请求…

vivado Kintex UltraScale+ 配置存储器器件

Kintex UltraScale 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 Kintex UltraScale 器件执行擦除、空白检查、编程和验证等配置操作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 &#xff0c; 并支持通过 Vivado 软件对其中所列非易失性存…

【VUE.js】前端框架——未完成

基于脚手架创建前端工程 环境 当安装node.js时&#xff0c;它本身就携带有npm命令。&#xff08;-v 查版本号&#xff09;安装VUE CLI npm i vue/cli -g&#xff08;全局&#xff09; 创建 vue create 【project name】 镜像源解决方案 输入创建命令后&#xff0c;提示检查更…

【JAVA】JAVA的垃圾回收机制详解

对于Java的垃圾回收机制&#xff0c;它是Java虚拟机&#xff08;JVM&#xff09;提供的一种自动内存管理机制&#xff0c;主要负责回收不再使用的对象以释放内存空间。垃圾回收机制主要包括以下几个方面的内容&#xff1a; 垃圾对象的识别&#xff1a;Java虚拟机通过一些算法&…

C++学习笔记3

A. 求出那个数 题目描述 喵喵是一个爱睡懒觉的姑娘&#xff0c;所以每天早上喵喵的妈妈都花费很大的力气才能把喵喵叫起来去上学。 在放学的路上&#xff0c;喵喵看到有一家店在打折卖闹钟&#xff0c;她就准备买个闹钟回家叫自己早晨起床&#xff0c;以便不让妈妈这么的辛苦…

Caddy2使用阿里云DNS申请https证书,利用阿里云DNS境内外不同解析给Gone文档做一个同域名的国内镜像站点

我从头到尾实现了一个Golang的依赖注入框架&#xff0c;并且集成了gin、xorm、redis、cron、消息中间件等功能&#xff1b;自己觉得还挺好用的&#xff0c;并且打算长期维护&#xff01; github地址&#xff1a;https://github.com/gone-io/gone 文档原地址&#xff1a;https:/…

2024CCPC郑州站超详细题解(含题面)ABFHJLM(河南全国邀请赛)

文章目录 前言A Once In My LifeB 扫雷 1F 优秀字符串H 随机栈J 排列与合数L Toxel 与 PCPC IIM 有效算法 前言 这是大一博主第一次参加xcpc比赛&#xff0c;虽然只取得了铜牌&#xff0c;但是收获满满&#xff0c;在了解了和别人的差距后会更加激励自己去学习&#xff0c;下面…

Python从0到POC编写--函数

数学函数&#xff1a; 1. len len() 函数返回对象&#xff08;字符、列表、元组等&#xff09;长度或项目个数&#xff0c; 例如&#xff1a; str "python" len(str)2. range range() 函数返回的是一个可迭代对象&#xff08;类型是对象&#xff09;&#xff0c;…

并行执行的4种类别——《OceanBase 并行执行》系列 4

OceanBase 支持多种类型语句的并行执行。在本篇博客中&#xff0c;我们将根据并行执行的不同类别&#xff0c;分别详细阐述&#xff1a;并行查询、并行数据操作语言&#xff08;DML&#xff09;、并行数据定义语言&#xff08;DDL&#xff09;以及并行 LOAD DATA 。 《并行执行…

vm虚拟机扩容centos磁盘内存

1.查看虚拟机扩展前磁盘内存 df -h 2.关机情况下扩展磁盘内存 3.对扩容的磁盘分区 fdisk /dev/sda 输入n新增分区&#xff0c;回车&#xff0c;选择p&#xff0c;回车 为分区设置分区格式&#xff0c;在Fdisk命令处输入&#xff1a;t 分区号用默认 3&#xff08;或回车&…

OSS证书自动续签,一分钟轻松搞定,解决阿里云SSL免费证书每3个月失效问题

文章目录 一、&#x1f525;httpsok-v1.11.0支持OSS证书自动部署介绍支持特点 二、废话不多说上教程&#xff1a;1、场景2、实战Stage 1&#xff1a;ssh登录阿里云 ECSStage 2&#xff1a;进入nginx &#xff08;docker&#xff09;容器Stage 3&#xff1a;执行如下指令Stage 3…

测试环境搭建整套大数据系统(十六:超级大文件处理遇到的问题)

一&#xff1a;yarn出现损坏的nodemanger 报错现象 日志&#xff1a;1/1 local-dirs usable space is below configured utilization percentage/no more usable space [ /opt/hadoop-3.2.4/data/nm-local-dir : used space above threshold of 90.0% ] ; 1/1 log-dirs usabl…

01-02-2

1、typedef的使用 a.语法 typedef 原名 别名&#xff1b;。 ​ typedef struct student {int num;char name[20];char sex; }stu,*pstu;//stu相当于struct student这个类型&#xff0c;*pstu相当于struct student * 别名的理解方法&#xff1a;若是字母前面有符号&#xff0…

SOUI4里使用字体回退

在新版本的SOUI里render-skia导出了一个新的函数用于字体回退功能。Render_Skia_SetFontFallback 函数原型如下&#xff1a; EXTERN_C void SOUI_COM_API Render_Skia_SetFontFallback(FontFallback fontFallback);因为我的工程是使用动态库&#xff0c;这里可以直接获取到这…

如何用微信小程序实现远程控制4路控制器/断路器

如何用微信小程序实现远程控制4路控制器/断路器呢&#xff1f; 本文描述了使用微信小程序调用HTTP接口&#xff0c;实现控制4路控制器/断路器&#xff0c;支持4路输出&#xff0c;均可独立控制&#xff0c;可接入各种电器。 可选用产品&#xff1a;可根据实际场景需求&#xf…

内容与图像一对多问题解决

场景复现 分析&#xff1a; 其实这是两给表&#xff0c;一个内容表&#xff0c;一个图片表&#xff0c;一对多的关系。 解决思路: 1. 先上传图片拿到图片的List集合ids&#xff0c;返回值是集合的ids&#xff0c;给到前端 2. 再添加内容表的数据生成了id&#xff0c;遍历查…

佳博打印机如何设置打印模式为热敏模式

1、打开电脑搜索框&#xff0c;如下图输入打印机: 2、点击打印机设置&#xff0c;如下图&#xff1a; 3、点击打印机首选项&#xff0c;如下图&#xff1a; 4、点击下图“卷”进行设置 也可对打印机间距高度进行调整

【深度学习】探秘PSD:合成到真实去雾框架的实例解析

揭秘PSD&#xff1a;合成到真实去雾框架的革新 一、PSD框架的提出背景二、PSD框架的原理与网络结构三、PSD框架的实现与代码示例四、结论与展望 在图像处理领域&#xff0c;去雾技术一直是一个备受关注的研究热点。然而&#xff0c;传统的去雾方法在面对真实世界的模糊图像时&a…

腐烂的橘子

代码实现&#xff1a; int orangesRotting(int **grid, int gridRowSize, int *gridColSizes) {int good 0, bad 0, t 0;for (int i 0; i < gridRowSize; i) {for (int j 0; j < gridColSizes[0]; j) {if (grid[i][j] 1) { // 记录好橘子数good;} else if (grid[i…

ABB机器人程序类型介绍

ABB机器人编程语言为rapid语言&#xff0c;在例行程序中可分为三类&#xff1a;普通程序、功能程序和中断程序。例如新建一个例行程序&#xff0c;会选择一个程序类型&#xff0c;三种类型的区别如下&#xff1a; 1、普通程序&#xff08;procedures&#xff09;&#xff1a;常…