Design Phone Directory
2024-09-03 01:56:03
Design a Phone Directory which supports the following operations:
get: Provide a number which is not assigned to anyone.
check: Check if a number is available or not.
release: Recycle or release a number.
public class PhoneDirectory {
Set<Integer> used = new HashSet<>();
Queue<Integer> available = new LinkedList<>();
int max; public PhoneDirectory(int maxNumbers) {
max = maxNumbers;
for (int i = ; i < maxNumbers; i++) {
available.offer(i);
}
} public int get() {
Integer ret = available.poll();
if (ret == null) {
return -;
}
used.add(ret);
return ret;
} public boolean check(int number) {
if (number >= max || number < ) {
return false;
}
return !used.contains(number);
} public void release(int number) {
if (used.remove(number)) {
available.offer(number);
}
}
}
最新文章
- android 多线程
- Atitit 词法分析器的设计最佳实践说明attilax总结
- iScroll4下表单元素聚焦及键盘的异常问题
- 十天冲刺---Day8
- python常用函数
- FancyTree 状态保持
- oc-05-对象的创建
- noip 2003 传染病控制(历史遗留问题2333)
- 使用Jstl异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannot&;nbs
- 搭建SSH环境之添加所需jar包
- VS中,如何将存在于解决方案里,但是没有显示出来的文件(或文件夹)显示到项目中。
- Adobe Flash Builder 4.7 新功能详解
- modal verbs(一)
- SpringCloud的微服务网关:zuul(理论)
- 5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」
- select下拉框的探索(<;option>;<;/option>;标签中能嵌套使用其它标签吗)
- [Swift]LeetCode114. 二叉树展开为链表 | Flatten Binary Tree to Linked List
- new Vue 发生了什么
- Node.js的缺陷
- JUnit4测试报错:class not found XXX
热门文章
- Java进阶知识14 Struts2中的S标签
- DP(第一版)
- delphi将两个Strlist合并,求并集
- deepin Linux 日常命令、插件、方法等汇总【更新中】
- Python中send和sendall的区别
- How to do Deep Learning on Graphs with Graph Convolutional Networks
- 8.7 JSON存储数据方式(JavaScript对象表示法)
- 什么是跨平台性?原理是什么?JVM
- docker安装Elasticsearch Kibana和Cerebro
- LeetCode205----同构字符串