55import java .util .Queue ;
66import java .util .Set ;
77
8- /**Design a Phone Directory which supports the following operations:
8+ /**
9+ * 379. Design Phone Directory
10+ *
11+ * Design a Phone Directory which supports the following operations:
912
1013 get: Provide a number which is not assigned to anyone.
1114 check: Check if a number is available or not.
3841 */
3942public class _379 {
4043
41- private class PhoneDirectory {
42- private Queue <Integer > phoneDir ;
43- private Set <Integer > used ;
44-
45- /**
46- * Initialize your data structure here
47- *
48- * @param maxNumbers - The maximum numbers that can be stored in the phone directory.
49- */
50- public PhoneDirectory (int maxNumbers ) {
51- phoneDir = new LinkedList ();
52- int number = 0 ;
53- while (maxNumbers -- > 0 ) {
54- phoneDir .add (number ++);
44+ public static class Solution1 {
45+ private class PhoneDirectory {
46+ private Queue <Integer > phoneDir ;
47+ private Set <Integer > used ;
48+
49+ /**
50+ * Initialize your data structure here
51+ *
52+ * @param maxNumbers - The maximum numbers that can be stored in the phone directory.
53+ */
54+ public PhoneDirectory (int maxNumbers ) {
55+ phoneDir = new LinkedList ();
56+ int number = 0 ;
57+ while (maxNumbers -- > 0 ) {
58+ phoneDir .add (number ++);
59+ }
60+ used = new HashSet ();
5561 }
56- used = new HashSet ();
57- }
5862
59- /**
60- * Provide a number which is not assigned to anyone.
61- *
62- * @return - Return an available number. Return -1 if none is available.
63- */
64- public int get () {
65- if (phoneDir .peek () == null ) {
66- return -1 ;
63+ /**
64+ * Provide a number which is not assigned to anyone.
65+ *
66+ * @return - Return an available number. Return -1 if none is available.
67+ */
68+ public int get () {
69+ if (phoneDir .peek () == null ) {
70+ return -1 ;
71+ }
72+ int newNumber = phoneDir .poll ();
73+ used .add (newNumber );
74+ return newNumber ;
6775 }
68- int newNumber = phoneDir .poll ();
69- used .add (newNumber );
70- return newNumber ;
71- }
7276
73- /**
74- * Check if a number is available or not.
75- */
76- public boolean check (int number ) {
77- return !used .contains (number );
78- }
77+ /**
78+ * Check if a number is available or not.
79+ */
80+ public boolean check (int number ) {
81+ return !used .contains (number );
82+ }
7983
80- /**
81- * Recycle or release a number.
82- */
83- public void release (int number ) {
84- if (used .remove (number )) {
85- phoneDir .add (number );
84+ /**
85+ * Recycle or release a number.
86+ */
87+ public void release (int number ) {
88+ if (used .remove (number )) {
89+ phoneDir .add (number );
90+ }
8691 }
8792 }
8893 }
89-
90- }
94+ }
0 commit comments