5
5
import java .util .Queue ;
6
6
import java .util .Set ;
7
7
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:
9
12
10
13
get: Provide a number which is not assigned to anyone.
11
14
check: Check if a number is available or not.
38
41
*/
39
42
public class _379 {
40
43
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 ();
55
61
}
56
- used = new HashSet ();
57
- }
58
62
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 ;
67
75
}
68
- int newNumber = phoneDir .poll ();
69
- used .add (newNumber );
70
- return newNumber ;
71
- }
72
76
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
+ }
79
83
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
+ }
86
91
}
87
92
}
88
93
}
89
-
90
- }
94
+ }
0 commit comments