933. 最近的请求次数( 队列 或 数组模拟队列Queue )

2024-03-16 01:30

本文主要是介绍933. 最近的请求次数( 队列 或 数组模拟队列Queue ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Question
  • Ideas
    • 1、Answer( Java ) - 队列实现
      • Code
    • 2、Answer( Java ) - 数组模拟队列
      • Code
    • 3、Answer( Java ) - 简单模拟
      • Code

Question

933. 最近的请求次数
在这里插入图片描述

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-recent-calls/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Ideas

1、Answer( Java ) - 队列实现

解法思路:队列实现

👍注意题目要求 :保证每次对 ping 调用所使用的 t 值都 严格递增( 相当于简化了问题 )

Code

/*** @author Listen 1024* @description 933. 最近的请求次数( 队列 或 数组模拟队列 )* @date 2022-05-06 0:07*/
class RecentCounter {Queue<Integer> queue;public RecentCounter() {queue = new ArrayDeque<>();}public int ping(int t) {queue.offer(t);while (queue.peek() < t - 3000) {queue.poll();}return queue.size();}
}/*** Your RecentCounter object will be instantiated and called as such:* RecentCounter obj = new RecentCounter();* int param_1 = obj.ping(t);*/

2、Answer( Java ) - 数组模拟队列

解法思路:数组模拟队列

⚡️OJ 常见奇技淫巧: CPU Cache 数是 2 的幂,N + 5 是一个奇数,与之互素,这样可以减少 Cache 冲突概率,提高速度。( 针对于多维数组 )
👍注意题目要求 :保证每次对 ping 调用所使用的 t 值都 严格递增( 相当于简化了问题 )

Code

/*** @author Listen 1024* @description 933. 最近的请求次数( 队列 或 数组模拟队列 )* @date 2022-05-06 0:07*/
class RecentCounter {int left, right;int[] res = new int[10005];public RecentCounter() {left = 0;right = 0;}public int ping(int t) {res[right++] = t;while (res[left] < t - 3000) {left++;}return right - left;}
}/*** Your RecentCounter object will be instantiated and called as such:* RecentCounter obj = new RecentCounter();* int param_1 = obj.ping(t);*/

3、Answer( Java ) - 简单模拟

解法思路:简单模拟

👍暴力求解时间过长( 不推荐 )

Code

/*** @author Listen 1024* @description 933. 最近的请求次数( 队列 或 数组模拟队列 )* @date 2022-05-06 0:07*/
class RecentCounter {List<Integer> list = new ArrayList<>();public RecentCounter() {}public int ping(int t) {int res = 0;list.add(t);for (Integer integer : list) {if (integer >= t - 3000 && integer <= t) {res++;}}return res;}
}/*** Your RecentCounter object will be instantiated and called as such:* RecentCounter obj = new RecentCounter();* int param_1 = obj.ping(t);*/
//部分题解参考链接(如侵删)
https://leetcode-cn.com/problems/number-of-recent-calls/solution/zui-jin-de-qing-qiu-ci-shu-by-leetcode-s-ncm1/

这篇关于933. 最近的请求次数( 队列 或 数组模拟队列Queue )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813894

相关文章

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

golang实现延迟队列(delay queue)的两种实现

《golang实现延迟队列(delayqueue)的两种实现》本文主要介绍了golang实现延迟队列(delayqueue)的两种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录1 延迟队列:邮件提醒、订单自动取消2 实现2.1 simplChina编程e简单版:go自带的time

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序