每日一题——最近的请求次数

简介: 每日一题——最近的请求次数

933. 最近的请求次数

題目描述:

题意解释:

就是返回时间在[t-3000, t]的请求数:

借助例子来理解:

["RecentCounter", "ping", "ping", "ping", "ping"]

[[],[642],[1849],[4921],[5936]]

在代码中就是:

func main() {
  rc := Constructor() // 初始化一个空切片
  fmt.Println(rc.Ping(642),
    rc.Ping(1849), 
    rc.Ping(4921),
    rc.Ping(5936),
  )
}

第一次请求:时间为642 ,此时为空,不存在比他早3000的请求,加入队列[642]

第二次请求:时间为1849,此时队列的第一个元素并不比这次请求时间早3000,所以依旧加入队列[642,1849]

第三次请求: 时间为4921,(这里是个转折点)可以看到我们此时队列里俩次请求时间都比这次早3000多,所以要把他俩剔除掉,将这次请求加入队列[4921]

第四次请求:时间为5936,此时队列里的元素并不比这次请求早3000,所以加入队列即可[4921,5936]

所以输出结果为[1,2,1,2]

题解:

type RecentCounter struct {
  queue []int
}
func Constructor() RecentCounter {
  return RecentCounter{make([]int, 0)}
}
func (rc *RecentCounter) Ping(t int) int {
  rc.queue = append(rc.queue, t)
  // 如果队列中,请求的时间不在[t-3000,t](这个是t是最新一次请求的时间)以内,就给他截掉
  for rc.queue[0] < t-3000 {
    rc.queue = rc.queue[1:]
  }
  return len(rc.queue)
}

提交结果:

相关文章
|
机器学习/深度学习 编解码 数据建模
CMT:卷积与Transformers的高效结合
论文提出了一种基于卷积和VIT的混合网络,利用Transformers捕获远程依赖关系,利用cnn提取局部信息。构建了一系列模型cmt,它在准确性和效率方面有更好的权衡。
314 0
|
自然语言处理 Docker 容器
elasticsearch-analysis-ik分词器下载与安装
elasticsearch-analysis-ik分词器下载与安装
3832 0
elasticsearch-analysis-ik分词器下载与安装
|
前端开发 JavaScript API
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
175 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
|
C#
蓝易云 - C#将异步改成同步方法
注意:虽然这样可以将异步方法转为同步,但在实际开发中,我们通常推荐使用异步方法,因为它可以提高应用程序的响应性和并发性。将异步方法转为同步可能会导致死锁或性能问题。
190 2
创建逻辑表单,信息收集更智能
设置显隐规则,可以实现 选择不同选项显示不同内容 的效果。适用于问卷、评价或巡检巡查场景使用,一份表单,得到两种甚至多种反馈。
113 3
|
SQL
二次查询过程
【7月更文挑战第8天】
149 7
迷宫回溯(java)
迷宫回溯(java)
|
Kubernetes Java Perl
k8s优雅停服
在应用程序的整个生命周期中,正在运行的 pod 会由于多种原因而终止。在某些情况下,Kubernetes 会因用户输入(例如更新或删除 Deployment 时)而终止 pod。在其他情况下,Kubernetes 需要释放给定节点上的资源时会终止 pod。无论哪种情况,Kubernetes 都允许在 pod 中运行的容器在可配置的时间内正常关闭。 请查看下面的图表,以便更好地了解删除 pod 时发生的情况。
k8s优雅停服
|
存储 数据可视化 Java
Kstry流程编排框架
Kstry是流程编排框架、组件化框架、并发框架、微服务整合框架
1553 1
Kstry流程编排框架
|
机器学习/深度学习 数据可视化 Linux
安装 Python 开发环境,准备体验 OpenAI 的 API
在刚接触 Python 的时候,大多数人都会面临一个问题,针对不同的需求,不同的环境,我到底是选择 2 还是 3,就需要一个强大的 Python环境管理工具了,可以在电脑上同时搭建两套环境,并且可以在两个环境之间来回切换而不受对方的影响,Anaconda 就是你需要的。