【LeetCode75】第二十七题(933)最近的请求次数

这篇具有很好参考价值的文章主要介绍了【LeetCode75】第二十七题(933)最近的请求次数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

题目:

示例:

分析:

代码+运行结果:


题目:

【LeetCode75】第二十七题(933)最近的请求次数,LeetCode75题解,算法,c++,leetcode,数据结构

示例:

【LeetCode75】第二十七题(933)最近的请求次数,LeetCode75题解,算法,c++,leetcode,数据结构

分析:

首先这是LeetCode75里第一道设计类的题目,这种类型的题目会比较新颖,就是按照题目要求来设计一个类。然后测试用例是模拟真实调用类的成员函数的。

这道题也算是简单题,整个类除了构造函数以外就一个成员函数,测试用例也就只调用这一个函数。

在调用函数的时候会连同带一个参数,表示当前请求的时间,然后要返回当前这个时间的3000秒内的请求次数。

那么我们就可以拿一个容器来存放请求时间,然后在调用ping这个函数时候,我们可以在容器里寻找比当前请求时间小3000以内的请求时间数量,然后返回出去。

但是题目有保证说每次请求的时间都会比之前的请求时间更大,因此我们存放请求时间的这个容器内部,是一个递增的状态,因此如果我们发现一个容器里的一个请求时间比当前的请求时间小,并且差值大于3000了,我们就可以直接把这个请求时间从容器里删除了。因为后面的请求时间都会比现在的请求时间更大,就更用不到这个较小的请求时间了。

所以我们可以使用双端队列来存放请求时间,每次添加请求时间都放在队尾,然后发现队头与当前请求时间的差值大于3000的时候,就可以把队头删除。最后返回双端队列的长度即可。

代码+运行结果:

class RecentCounter {
public:
    deque<int>count;
    RecentCounter() {
        
    }
    
    int ping(int t) {
        count.push_back(t);
        while(count.front()<t-3000) count.pop_front();
        return count.size();
    }
};

【LeetCode75】第二十七题(933)最近的请求次数,LeetCode75题解,算法,c++,leetcode,数据结构文章来源地址https://www.toymoban.com/news/detail-644338.html

到了这里,关于【LeetCode75】第二十七题(933)最近的请求次数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学C的第二十七天【指针的进阶(三)】

    ========================================================================= 相关代码gitee自取 :C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 学C的第二十六天【指针的进阶(二)】_高高的胖子的博客-CSDN博客  ================================

    2024年02月16日
    浏览(42)
  • 第二十七章 配置 Web Gateway 的默认参数 - 安全

    如果此处定义了用户名和密码,则所有系统管理员都必须提供此用户名和密码才能访问 Web Gateway 管理页面。 如果忘记密码,请使用以下步骤设置新密码: 编辑配置文件以指定新的用户名和密码值;在文件的 SYSTEM 部分进行更改。可以以明文形式指定密码的值。 重新启动网络

    2024年04月26日
    浏览(35)
  • vue 3 第二十七章:样式(动态class、动态style)

    在 Vue 中,我们可以使用动态绑定语法来动态地添加类名或样式。本章将介绍 Vue 3 中如何使用动态绑定语法来动态地添加类名或样式。 在 Vue 中,我们可以使用 :class 或 v-bind:class 指令来动态地添加类名。例如,下面的例子中,我们可以根据 isActive 的值动态地为元素添加 act

    2024年02月07日
    浏览(41)
  • UNIX网络编程卷一 学习笔记 第二十七章 IP选项

    IPv4允许在20字节的首部固定部分后跟最多共40字节的选项。尽管已经定义了10种IPv4选项,但最常用的是源路径选项。我们可通过存取IP_OPTIONS套接字选项访问这些选项,我们存取该套接字选项时,所用的缓冲区中的值就是它们置于IP数据报中的格式。 IPv6允许在固定长度40字节的

    2024年02月14日
    浏览(51)
  • 【从零开始学习JAVA | 第二十七篇】JAVA期末练习(PTA)

    目录 前言: R7-5 Count the letters in a string (统计字符串中的字符) R7-1 找素数 R7-3 电话号码同步(Java) 总结:         临近期末,我也更新一下PTA上的JAVA大题,希望各位都可以考出一个好的成绩。 (Count the letters in a string) (统计字符串中的字符) Write a method that counts th

    2024年02月16日
    浏览(59)
  • 孩子都能学会的FPGA:第二十八课——用FPGA实现最近最少使用(LRU)算法

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月19日
    浏览(40)
  • 从0开始学C++ 第二十七课 数据结构入门 - 数组与链表

    第二十七课:数据结构入门 - 数组与链表 学习目标: 理解数组的基本概念和操作。 掌握链表的基本结构与特点。 学会在C++中定义和操作数组和链表。 了解数组和链表的基本使用场景。 学习内容: 数组(Array) 概念:数组是一种线性数据结构,用一段连续的内存空间来存储

    2024年01月23日
    浏览(47)
  • JavaScript从入门到精通系列第二十七篇:详解JavaScript中的包装类

      文章目录 前言 一:包装类 1:包装类作用 2:包装类成员 3:包装类作用 4:包装类使用         包装类就类似于把一个草根包装成一个明星,就类似于Java中的Integer。         JavaScript中的基本数据类型String Number Boolean Null Undefined         引用数据类型:Object         J

    2024年02月06日
    浏览(42)
  • 第二十七章 控制到 XML 模式的映射 - 影响架构的编译器关键字

    VALUELLIST 向类型添加 enumeration 限制。考虑下面的类: 下面显示了该类的架构: XMLFractionDigits 适用于 %Numeric 。此参数对应于 fractionDigits 构面,如以下片段所示: XMLTotalDigits 适用于 %Numeric 属性或 %Integer 属性。此参数对应于 totalDigits 方面,如以下片段所示: XMLLISTPARAMETER 适用

    2024年02月04日
    浏览(36)
  • Leetcode 剑指 Offer II 042. 最近的请求次数

    题目难度: 简单 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 写一个 RecentCounter 类来计算特定时间范围内最近的请求。 请实现 RecentCounter 类: RecentCounter() 初始化

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包