LeetCode 359. 日志速率限制器(哈希map)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 359. 日志速率限制器(哈希map)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
請你設計一個日志系統,可以流式接收日志以及它的時間戳。
該日志會被打印出來,需要滿足一個條件:當且僅當日志內容 在過去的 10 秒鐘內沒有被打印過。
給你一條日志的內容和它的時間戳(粒度為秒級),如果這條日志在給定的時間戳應該被打印出來,則返回 true,否則請返回 false。
要注意的是,可能會有多條日志在同一時間被系統接收。
示例: Logger logger = new Logger(); // 日志內容 "foo" 在時刻 1 到達系統 logger.shouldPrintMessage(1, "foo"); returns true; // 日志內容 "bar" 在時刻 2 到達系統 logger.shouldPrintMessage(2,"bar"); returns true; // 日志內容 "foo" 在時刻 3 到達系統 logger.shouldPrintMessage(3,"foo"); returns false; // 日志內容 "bar" 在時刻 8 到達系統 logger.shouldPrintMessage(8,"bar"); returns false; // 日志內容 "foo" 在時刻 10 到達系統 logger.shouldPrintMessage(10,"foo"); returns false; // 日志內容 "foo" 在時刻 11 到達系統 logger.shouldPrintMessage(11,"foo"); returns true;來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/logger-rate-limiter
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Logger {unordered_map<string,int> m; public:/** Initialize your data structure here. */Logger() {}/** Returns true if the message should be printed in the given timestamp, otherwise returns false.If this method returns false, the message will not be printed.The timestamp is in seconds granularity. */bool shouldPrintMessage(int timestamp, string message) {if(m.find(message) == m.end() || timestamp-m[message]>=10){m[message] = timestamp;return true;}elsereturn false;} };184 ms 32.2 MB
長按或掃碼關注我的公眾號,一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 359. 日志速率限制器(哈希map)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1511.
- 下一篇: LeetCode 635. 设计日志存储