写一个 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。

思路:可以维护一个队列,只存未过期的即可。官方题解也是这么写的。

class RecentCounter {Queue<Integer> q=new LinkedList();;public RecentCounter() {}public int ping(int t) {q.add(t);while (q.peek() < t-3000)q.poll();return q.size();}
}/*** Your RecentCounter object will be instantiated and called as such:* RecentCounter obj = new RecentCounter();* int param_1 = obj.ping(t);*/

但是,可能会面临一个poll的峰值,影响性能。

目前我想到的方案可以直接弄个数组(如果做限制可以循环数组,但是它要求返回数量,没办法)

class RecentCounter {Queue<Integer> q=new LinkedList();int[] arr=new int[10000];int a,b;public RecentCounter() {a=0;b=0;}
/*public int ping(int t) {q.add(t);while (q.peek() < t-3000)q.poll();return q.size();}*/public int ping(int t) {arr[b++]=t;while (a<10000 && arr[a] < t-3000)a++;return b-a;}}/*** Your RecentCounter object will be instantiated and called as such:* RecentCounter obj = new RecentCounter();* int param_1 = obj.ping(t);*/

leetcode933. 最近的请求次数相关推荐

  1. LeetCode简单题之最近的请求次数

    题目 写一个 RecentCounter 类来计算特定时间范围内最近的请求. 请你实现 RecentCounter 类: RecentCounter() 初始化计数器,请求数为 0 . int pin ...

  2. 降低http请求次数

    80%的终于用户响应时间花在前端程序上.而其大部分时间则花在各种页面元素,如图像.样式表.脚本和Flash等的下载上. 降低页面元素将会降低HTTP请求次数.这是高速显示页面的关键所在. 1.Imag ...

  3. Web项目性能优化之减少HTTP请求次数优化

    作为项目经理的我,在近两个月内,时常被客户抱怨,我们的Web程序性能太差,经常宕机,即使服务器的配置再好,在业务请求量大的情况下也比较容易出现系统繁忙,线程堵塞,最后Web容器的HTTP线程池被慢慢耗 ...

  4. ServiceStack.Redis 请求次数6000次异常

    原文:ServiceStack.Redis 请求次数6000次异常 Redis是一个非常NB的内存级的数据库,我们可以把很多"热数据"(即读写非常多的数据)放入其中来操作,这样就减 ...

  5. Django(part42)--限制IP请求次数

    学习笔记,仅供参考,有错必纠 限制IP请求次数 这个Blog中,我们将使用中间件,实现强制某个IP地址只能向某个地址发送3次GET请求. 在做这个案例之前我们需要先学两个request的属性: req ...

  6. 高并发大流量专题---3、前端优化(减少HTTP请求次数)

    高并发大流量专题---3.前端优化(减少HTTP请求次数) 一.总结 一句话总结: 图片地图:使用<map><area></area></map>标签. ...

  7. 限制ip在一定时间内的请求次数

    //规定的时间限制请求次数$num = 10;$time = 60;$error_ip_num_ = Cache::get('ip_num_'.$request->ip(),0);if(!$er ...

  8. 输入框实时搜索优化,减少请求次数、取消无用请求

    背景 用户在输入框输入内容的同时进行搜索,针对搜索实时搜索结果进行展示 问题 如果不做处理,只监听输入框的input事件或者键盘按下弹起事件,实时对文本内容进行搜索,往往因为网络波动问题可能会造成结果 ...

  9. ajax定时器重复,jquery ajax使用定时器限制请求次数及终止重复请求

    场景描述: 在我们平时的开发过程中,经常会遇到这样的情况.在搜索功能中进行模糊搜索或者联想关联. 这就要我们每次对输入框中的数据进行改动时,都要发送一次请求.当在短时间内多次操作改动时,问题就出现了. ...

最新文章

  1. 旷视张祥雨:神经网络架构设计新思路
  2. mariadb 和mysql主从_MariaDB主从同步
  3. 关闭excel多余的addin,提供excel启动速度
  4. js中sort()方法的用法,参数以及排序原理
  5. Python教学与学习过程中应注意的九句话
  6. 力扣 ---- java
  7. 截短 UTF-8 字符串
  8. 改变维度_一个人的各种维度,哪些是可以改变的?
  9. mysql 5.6 二进制安装包_centos6上mysql5.6二进制包安装
  10. python模拟登录12306_python基于selenium模块实现自动登录12306网站
  11. 电路交换、报文交换、分组交换
  12. launcher3的具体学习
  13. Kettle工具——Spoon、Kitchen、Pan、Carte
  14. JVM3-类文件结构
  15. ctf.show 萌xin区杂项
  16. 40079 钉钉_钉钉获取免登陆授权码CODE,返回:不存在的临时授权码40078
  17. 英语入门造句专用名词表(共 396 个)
  18. 最长对称子串(用各个字符确定对称轴进行判断)
  19. 【whistle】Whistle 安装及使用
  20. Dell一体机声卡无声,喇叭有杂音

热门文章

  1. maya怎么贴膜_maya怎么渲染成白膜?
  2. python 局域网扫描_Python 简化版扫描局域网存活主机
  3. python 属性描述符_Python属性描述符(二)
  4. win10 python 调用模块_python常识系列14--gt;python通过jpype模块调用jar包
  5. STL内嵌数据类型: value_type
  6. V210 UART TX 流程
  7. Window CE 6.0流驱动开发动态加载实验
  8. 擦窗机器人测试标准_擦窗机器人,我选择玻妞的三个理由!
  9. vscode python环境配置_用VScode配置Python开发环境
  10. 新浪云python示例_Python Web框架Flask中使用新浪SAE云存储实例