2526-找到数据流中的连续整数
给你一个整数数据流,请你实现一个数据结构,检查数据流中最后 k
个整数是否 等于 给定值 value
。
请你实现 DataStream 类:
DataStream(int value, int k)
用两个整数value
和k
初始化一个空的整数数据流。boolean consec(int num)
将num
添加到整数数据流。如果后k
个整数都等于value
,返回true
,否则返回false
。如果少于k
个整数,条件不满足,所以也返回false
。
示例 1:
**输入:**
["DataStream", "consec", "consec", "consec", "consec"]
[[4, 3], [4], [4], [4], [3]]
**输出:**
[null, false, false, true, false]
**解释:**
DataStream dataStream = new DataStream(4, 3); // value = 4, k = 3
dataStream.consec(4); // 数据流中只有 1 个整数,所以返回 False 。
dataStream.consec(4); // 数据流中只有 2 个整数
// 由于 2 小于 k ,返回 False 。
dataStream.consec(4); // 数据流最后 3 个整数都等于 value, 所以返回 True 。
dataStream.consec(3); // 最后 k 个整数分别是 [4,4,3] 。
// 由于 3 不等于 value ,返回 False 。
提示:
1 <= value, num <= 109
1 <= k <= 105
- 至多调用
consec
次数为105
次。
Problem: 2526. 找到数据流中的连续整数
[TOC]
思路
- 我们必须连续记录 k 个 num 都为 value 时,才返回 true 。
- 因此我们使用 cnt 来记录连续 num 为 value 的数量。
- 遇到 num === this.value 时,cnt++,否则 cnt 重置为 0 ,然后返回 cnt 是否大等于 k 即可。
Code
1 |
|
Comments