Skip to content

Commit 2bd551c

Browse files
authored
feat: update solution description to lc problem: No.0933 (doocs#810)
No.0933.Number of Recent Calls
1 parent 3efcec2 commit 2bd551c

File tree

1 file changed

+9
-3
lines changed
  • solution/0900-0999/0933.Number of Recent Calls

1 file changed

+9
-3
lines changed

solution/0900-0999/0933.Number of Recent Calls/README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,17 @@ recentCounter.ping(3002); // requests = [1, <strong>100</strong>, <strong>3001<
5050

5151
<!-- 这里可写通用的实现逻辑 -->
5252

53-
**方法一:队列**
53+
**方法一:暴力**
5454

55-
在第 1、100、3001、3002 这四个时间点分别进行了 ping 请求, 在 3001 秒的时候, 它前面的 3000 秒指的是区间 `[1,3001]`, 所以一共是有 `1、100、3001` 三个请求, t = 3002 的前 3000 秒指的是区间 `[2,3002]`, 所以有 `100、3001、3002` 三次请求
55+
使用数组存储所有请求记录,当请求发生时,将记录存入数组,然后遍历数组,统计其中满足 `[t - 3000, t]` 的元素数量,返回即可
5656

57-
可以用队列实现。每次将 t 进入队尾,同时从队头开始依次移除小于 `t-3000` 的元素。然后返回队列的大小 `q.size()` 即可。
57+
**方法二:队列**
58+
59+
由题得知,`t`**严格递增**的,当一个元素不满足 `[t - 3000, t]` 条件时,在后续的请求当中,它也不可能满足。
60+
61+
对此,需要将其从记录容器中移除,减少无意义的比较。
62+
63+
可以使用队列。每次将 `t` 进入队尾,同时从队头开始,依次移除小于 `t - 3000` 的元素。然后返回队列的大小(`q.size()`)即可。
5864

5965
<!-- tabs:start -->
6066

0 commit comments

Comments
 (0)