精華區beta Marginalman 關於我們 聯絡資訊
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 } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.48.170 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1749717215.A.D7E.html ※ 編輯: yam276 (114.32.48.170 臺灣), 06/12/2025 16:34:16