摘要:前言的第一题最近的请求次数写一个类来计算最近的请求。返回从毫秒前到现在的数。示例输入输出提示每个测试用例最多调用次。实现代码最近的请求次数存储时间的最小有效时间的索引从开始遍历判断最小的有效时间是否无效返回有效的元素个数
前言
Weekly Contest 109的第一题 最近的请求次数:
解题思路写一个 RecentCounter 类来计算最近的请求。
它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。
返回从 3000 毫秒前到现在的 ping 数。
任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。
保证每次对 ping 的调用都使用比之前更大的 t 值。
示例:
输入:inputs = ["RecentCounter","ping","ping","ping","ping"], inputs = [[],[1],[100],[3001],[3002]] 输出:[null,1,2,3,3]提示:
每个测试用例最多调用 10000 次 ping。
每个测试用例会使用严格递增的 t 值来调用 ping。
每次调用 ping 都有 1 <= t <= 10^9。
本题其实并不复杂,但是我在实现时由于思考的方向错了,导致了花费大量时间去完成这个题目。
一开始我的思路是仿照LRU算法,实现一个会移除超出有效范围[t - 3000, t]的缓存。
但是随着不断的尝试后,发现其实只需要统计时有效的ping即可。期间遇到过好几次执行超时的情况,所以需要优化统计有效ping时的检索区间。
所以最终实现思路如下:
需要一个存储所有ping时间的数组list和记录最小有效ping时间的list索引minIndex
每次ping就从minIndex开始检索list,直到遇到数组list中的ping时间item有效(即item在[t - 3000, t])则中断循环,否则(item
/** * 933. 最近的请求次数 * @author RJH * create at 2018/11/4 */ public class RecentCounter { /** * 存储ping时间的List */ private Listlist; /** * 最小有效ping时间的索引 */ private int minIndex=0; public RecentCounter() { list=new LinkedList<>(); } public int ping(int t) { list.add(t); for(int i=minIndex;i
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71997.html
摘要:题目链接题目分析这个题目说实在的,看得我一脸蒙蔽。返回自毫秒到现在为止的次数包括当前。调函数时,传入的参数为当前的毫秒数。思路其实是说,返回前毫秒内的次数。最终代码若觉得本文章对你有用,欢迎用爱发电资助。 D50 933. Number of Recent Calls 题目链接 933. Number of Recent Calls 题目分析 这个题目说实在的,看得我一脸蒙蔽。 返回自...
摘要:题目地址题目描述写一个类来计算最近的请求。它只有一个方法,其中代表以毫秒为单位的某个时间。返回从毫秒前到现在的数。任何处于时间范围之内的都将会被计算在内,包括当前指时刻的。并且删除要用迭代器来删除,否则会引发。 题目地址:https://leetcode-cn.com/probl...题目描述:写一个 RecentCounter 类来计算最近的请求。 它只有一个方法:ping(int ...
今天我们讲讲JavaScript队列数据结构详解。 什么是队列? 队列是一种先进先出的数据结构,队列有两种操作:插入和删除;入队和出队。简单来说就是允许插入的一端称为队尾、允许删除的一端称为队头; 如下图展示了栈这个数据结构: JavaScript中的队列 要知道JavaScript中没有有关队列的数据模型,因此我们需要通过数组进行模拟,当数组中提供的push()和shift()选...
摘要:每个请求来的时候都会先去看看中有没有,即使使用的是的方式也不免会让我对它的性能产生一些担忧,所以性能测试就必须要来一发了。注也在阿里云执行只要是为了在一个数据中心降低网络延迟。测试因为考虑到服务器比较稳定,减少压测总数。 背景 最近我操刀了leetcode的论坛迁移,整个过程持续了几周的时间,总算暂时告了一个段落。常使用leetcode论坛的用户应该已经发现论坛已经大变样了吧~ 期间遇...
摘要:每个请求来的时候都会先去看看中有没有,即使使用的是的方式也不免会让我对它的性能产生一些担忧,所以性能测试就必须要来一发了。注也在阿里云执行只要是为了在一个数据中心降低网络延迟。测试因为考虑到服务器比较稳定,减少压测总数。 背景 最近我操刀了leetcode的论坛迁移,整个过程持续了几周的时间,总算暂时告了一个段落。常使用leetcode论坛的用户应该已经发现论坛已经大变样了吧~ 期间遇...
阅读 3508·2023-04-25 20:41
阅读 2664·2023-04-25 16:40
阅读 1436·2021-09-23 11:44
阅读 1257·2021-09-10 10:51
阅读 1684·2021-09-07 09:59
阅读 1644·2019-12-27 12:08
阅读 554·2019-08-30 15:44
阅读 3334·2019-08-30 11:08