网站seo优化如何做,网站开发时,徐州cms建站模板,做湲网站文章目录1. 题目2. 解题1. 题目
设计一个电话目录管理系统#xff0c;让它支持以下功能#xff1a;
get: 分配给用户一个未被使用的电话号码#xff0c;获取失败请返回 -1check: 检查指定的电话号码是否被使用release: 释放掉一个电话号码#xff0c;使其能够重新被分配 …
文章目录1. 题目2. 解题1. 题目
设计一个电话目录管理系统让它支持以下功能
get: 分配给用户一个未被使用的电话号码获取失败请返回 -1check: 检查指定的电话号码是否被使用release: 释放掉一个电话号码使其能够重新被分配
示例
// 初始化电话目录包括 3 个电话号码01 和 2。
PhoneDirectory directory new PhoneDirectory(3);// 可以返回任意未分配的号码这里我们假设它返回 0。
directory.get();// 假设函数返回 1。
directory.get();// 号码 2 未分配所以返回为 true。
directory.check(2);// 返回 2分配后只剩一个号码未被分配。
directory.get();// 此时号码 2 已经被分配所以返回 false。
directory.check(2);// 释放号码 2将该号码变回未分配状态。
directory.release(2);// 号码 2 现在是未分配状态所以返回 true。
directory.check(2);提示
1 maxNumbers 10^4
0 number maxNumbers
调用方法的总数处于区间 [0 - 20000] 之内来源力扣LeetCode 链接https://leetcode-cn.com/problems/design-phone-directory 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
两个哈希set一个存储没有使用的一个存储使用过的来回传递号码
class PhoneDirectory {unordered_setint unused, used;int tel;
public:/** Initialize your data structure hereparam maxNumbers - The maximum numbers that can be stored in the phone directory. */PhoneDirectory(int maxNumbers) {for(int i 0; i maxNumbers; i)unused.insert(i);}/** Provide a number which is not assigned to anyone.return - Return an available number. Return -1 if none is available. */int get() {if(unused.empty()) return -1;tel *unused.begin();unused.erase(*unused.begin());used.insert(tel);return tel;}/** Check if a number is available or not. */bool check(int number) {return unused.find(number) ! unused.end();//没有用过}/** Recycle or release a number. */void release(int number) {used.erase(number);unused.insert(number);}
};104 ms 23.3 MB 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步