题目地址:
https://leetcode-cn.com/probl...
题目描述:
写一个 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]

解答:
使用一个list来存储请求的时间,每一次调用ping函数,先把这次时间存入list中,然后查找list中所有和当前时间差大于3000的项并删除。接着返回list的大小即可。注:因为这里经常删除,所以用LinkedList的效率会更高一些(ArrayList会挪动元素)。并且删除要用iterator迭代器来删除,否则会引发ConcurrentModificationException。
java ac代码:

class RecentCounter {List<Integer>list = new LinkedList();public RecentCounter() {}public int ping(int t) {list.add(t);Iterator<Integer> iterator = list.iterator();while(iterator.hasNext()){Integer a = iterator.next();if(t-a > 3000)iterator.remove();else break;}return list.size();}
}/*** Your RecentCounter object will be instantiated and called as such:* RecentCounter obj = new RecentCounter();* int param_1 = obj.ping(t);*/

力扣(LeetCode)933相关推荐

  1. 力扣(LeetCode)刷题,简单+中等题(第35期)

    力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...

  2. 力扣(LeetCode)刷题,简单+中等题(第34期)

    目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...

  3. 力扣(LeetCode)刷题,简单+中等题(第33期)

    目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...

  4. 力扣(LeetCode)刷题,简单+中等题(第32期)

    目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...

  5. 力扣(LeetCode)刷题,简单+中等题(第31期)

    目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...

  6. 力扣(LeetCode)刷题,简单+中等题(第30期)

    目录 第1题:单词规律 第2题:找不同 第3题:在排序数组中查找元素的第一个和最后一个位置 第4题:使用最小花费爬楼梯 第5题:寻找峰值 第6题:字符串中的第一个唯一字符 第7题:两个数组的交集 II ...

  7. 力扣(LeetCode)刷题,简单+中等题(第29期)

    目录 第1题:分割数组为连续子序列 第2题:翻转矩阵后的得分 第3题:寻找旋转排序数组中的最小值 第4题:乘积最大子数组 第5题:不同路径 第6题:判断路径是否相交 第7题:摆动序列 第8题:单调递增 ...

  8. 力扣(LeetCode)刷题,简单+中等题(第28期)

    目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 ...

  9. 力扣(LeetCode)刷题,简单题(第27期)

    目录 第1题:独一无二的出现次数 第2题:速算机器人 第3题:岛屿的周长 第4题:按照频率将数组升序排序 第5题:根据数字二进制下 1 的数目排序 第6题:能否连接形成数组 第7题:强整数 第8题:查 ...

最新文章

  1. redis和memecache有什么区别?
  2. Android 通过Uri获取Bitmap对象
  3. java笔记类与对象3.7-3.10 2020.3.17
  4. 京东2016校招编程题
  5. 【LeetCode笔记】31. 下一个排列(Java、原地算法、偏数学)
  6. 计算机视觉基本原理介绍—RANSAC
  7. 摘抄:微软 Dynamics AX 学习步骤
  8. LeetCode数据库 180. 连续出现的数字
  9. mysql字段加密存储过程_数据库:加密存储过程
  10. Android使用NanoHttpd在app内搭建http server(一)
  11. 机器学习算法工程师领域现状
  12. 矩阵转置相关公式_线性代数精华2——逆矩阵的推导过程
  13. 初等变换:矩阵与行列式
  14. 亲爱的波特兰——CJ麦科勒姆告别信
  15. html js css 简明教程,HTML+CSS+JavaScript网页制作简明教程
  16. python怎么编辑excel_python 修改excel表格数据-关于如何用python 编辑 excel表格
  17. 安卓开发微信页面设计
  18. videopose3d 用自己的视频跑结果
  19. 二进制、八进制、十进制、十六进制的前缀和后缀
  20. windows配置OpenGL(VS C++版)

热门文章

  1. VC下提前注入进程的一些方法2——远线程带参数
  2. 深度学习中的卷积网络简介
  3. C++中嵌套类的使用
  4. OpenCV代码提取:flip函数的实现
  5. 【EMC】电磁兼容性相关名词解释、基础知识
  6. 【GDB】gdbserver的使用,远程调试开发板
  7. Qt中文手册 之 QTableWidget
  8. c语言规定预处理命令必须以什么开头,C语言规定预处理命令必须以___________开头...
  9. python 累积正态分布函数_为什么机器学习都围绕正态分布进行讨论?
  10. 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...