[閒聊] 每日leetcode 75 - Day10 - 2

作者: yam276 ('_')   2025-06-12 16:33:33
933. Number of Recent Calls
題目:
每次會有人 ping 你並跟你說 ping 的時間
列出小於這次 ping 時間 3000 內的 ping 次數
思路:
這題目要每次看最前面 是 Queue題目
所以就每次取最前面 超過 t - 3000 就剔除
另外要注意借用所有權問題 要解引用
Code:
use std::collections::VecDeque;
struct RecentCounter {
tasks: VecDeque<i32>,
}
impl RecentCounter {
fn new() -> Self {
Self {
tasks: VecDeque::new(),
}
}
fn ping(&mut self, t: i32) -> i32 {
while let Some(&front) = self.tasks.front() {
if front < t - 3000 {
self.tasks.pop_front();
} else {
break;
}
}
self.tasks.push_back(t);
self.tasks.len() as i32
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com