Skip to content

Commit 2bbb460

Browse files
committed
feat: add solutions to leetcode problem: No.0379
1 parent 1208c6e commit 2bbb460

File tree

4 files changed

+234
-4
lines changed

4 files changed

+234
-4
lines changed

solution/0300-0399/0379.Design Phone Directory/README.md

+78-2
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,91 @@ directory.check(2);
6363
<!-- 这里可写当前语言的特殊实现逻辑 -->
6464

6565
```python
66-
66+
class PhoneDirectory:
67+
68+
def __init__(self, maxNumbers: int):
69+
"""
70+
Initialize your data structure here
71+
@param maxNumbers - The maximum numbers that can be stored in the phone directory.
72+
"""
73+
self.provided = [False] * maxNumbers
74+
75+
def get(self) -> int:
76+
"""
77+
Provide a number which is not assigned to anyone.
78+
@return - Return an available number. Return -1 if none is available.
79+
"""
80+
for i in range(len(self.provided)):
81+
if not self.provided[i]:
82+
self.provided[i] = True
83+
return i
84+
return -1
85+
86+
def check(self, number: int) -> bool:
87+
"""
88+
Check if a number is available or not.
89+
"""
90+
return not self.provided[number]
91+
92+
def release(self, number: int) -> None:
93+
"""
94+
Recycle or release a number.
95+
"""
96+
self.provided[number] = False
97+
98+
99+
# Your PhoneDirectory object will be instantiated and called as such:
100+
# obj = PhoneDirectory(maxNumbers)
101+
# param_1 = obj.get()
102+
# param_2 = obj.check(number)
103+
# obj.release(number)
67104
```
68105

69106
### **Java**
70107

71108
<!-- 这里可写当前语言的特殊实现逻辑 -->
72109

73110
```java
74-
111+
class PhoneDirectory {
112+
113+
private boolean[] provided;
114+
115+
/** Initialize your data structure here
116+
@param maxNumbers - The maximum numbers that can be stored in the phone directory. */
117+
public PhoneDirectory(int maxNumbers) {
118+
provided = new boolean[maxNumbers];
119+
}
120+
121+
/** Provide a number which is not assigned to anyone.
122+
@return - Return an available number. Return -1 if none is available. */
123+
public int get() {
124+
for (int i = 0; i < provided.length; ++i) {
125+
if (!provided[i]) {
126+
provided[i] = true;
127+
return i;
128+
}
129+
}
130+
return -1;
131+
}
132+
133+
/** Check if a number is available or not. */
134+
public boolean check(int number) {
135+
return !provided[number];
136+
}
137+
138+
/** Recycle or release a number. */
139+
public void release(int number) {
140+
provided[number] = false;
141+
}
142+
}
143+
144+
/**
145+
* Your PhoneDirectory object will be instantiated and called as such:
146+
* PhoneDirectory obj = new PhoneDirectory(maxNumbers);
147+
* int param_1 = obj.get();
148+
* boolean param_2 = obj.check(number);
149+
* obj.release(number);
150+
*/
75151
```
76152

77153
### **...**

solution/0300-0399/0379.Design Phone Directory/README_EN.md

+78-2
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,89 @@ directory.check(2);
6060
### **Python3**
6161

6262
```python
63-
63+
class PhoneDirectory:
64+
65+
def __init__(self, maxNumbers: int):
66+
"""
67+
Initialize your data structure here
68+
@param maxNumbers - The maximum numbers that can be stored in the phone directory.
69+
"""
70+
self.provided = [False] * maxNumbers
71+
72+
def get(self) -> int:
73+
"""
74+
Provide a number which is not assigned to anyone.
75+
@return - Return an available number. Return -1 if none is available.
76+
"""
77+
for i in range(len(self.provided)):
78+
if not self.provided[i]:
79+
self.provided[i] = True
80+
return i
81+
return -1
82+
83+
def check(self, number: int) -> bool:
84+
"""
85+
Check if a number is available or not.
86+
"""
87+
return not self.provided[number]
88+
89+
def release(self, number: int) -> None:
90+
"""
91+
Recycle or release a number.
92+
"""
93+
self.provided[number] = False
94+
95+
96+
# Your PhoneDirectory object will be instantiated and called as such:
97+
# obj = PhoneDirectory(maxNumbers)
98+
# param_1 = obj.get()
99+
# param_2 = obj.check(number)
100+
# obj.release(number)
64101
```
65102

66103
### **Java**
67104

68105
```java
69-
106+
class PhoneDirectory {
107+
108+
private boolean[] provided;
109+
110+
/** Initialize your data structure here
111+
@param maxNumbers - The maximum numbers that can be stored in the phone directory. */
112+
public PhoneDirectory(int maxNumbers) {
113+
provided = new boolean[maxNumbers];
114+
}
115+
116+
/** Provide a number which is not assigned to anyone.
117+
@return - Return an available number. Return -1 if none is available. */
118+
public int get() {
119+
for (int i = 0; i < provided.length; ++i) {
120+
if (!provided[i]) {
121+
provided[i] = true;
122+
return i;
123+
}
124+
}
125+
return -1;
126+
}
127+
128+
/** Check if a number is available or not. */
129+
public boolean check(int number) {
130+
return !provided[number];
131+
}
132+
133+
/** Recycle or release a number. */
134+
public void release(int number) {
135+
provided[number] = false;
136+
}
137+
}
138+
139+
/**
140+
* Your PhoneDirectory object will be instantiated and called as such:
141+
* PhoneDirectory obj = new PhoneDirectory(maxNumbers);
142+
* int param_1 = obj.get();
143+
* boolean param_2 = obj.check(number);
144+
* obj.release(number);
145+
*/
70146
```
71147

72148
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
class PhoneDirectory {
2+
3+
private boolean[] provided;
4+
5+
/** Initialize your data structure here
6+
@param maxNumbers - The maximum numbers that can be stored in the phone directory. */
7+
public PhoneDirectory(int maxNumbers) {
8+
provided = new boolean[maxNumbers];
9+
}
10+
11+
/** Provide a number which is not assigned to anyone.
12+
@return - Return an available number. Return -1 if none is available. */
13+
public int get() {
14+
for (int i = 0; i < provided.length; ++i) {
15+
if (!provided[i]) {
16+
provided[i] = true;
17+
return i;
18+
}
19+
}
20+
return -1;
21+
}
22+
23+
/** Check if a number is available or not. */
24+
public boolean check(int number) {
25+
return !provided[number];
26+
}
27+
28+
/** Recycle or release a number. */
29+
public void release(int number) {
30+
provided[number] = false;
31+
}
32+
}
33+
34+
/**
35+
* Your PhoneDirectory object will be instantiated and called as such:
36+
* PhoneDirectory obj = new PhoneDirectory(maxNumbers);
37+
* int param_1 = obj.get();
38+
* boolean param_2 = obj.check(number);
39+
* obj.release(number);
40+
*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
class PhoneDirectory:
2+
3+
def __init__(self, maxNumbers: int):
4+
"""
5+
Initialize your data structure here
6+
@param maxNumbers - The maximum numbers that can be stored in the phone directory.
7+
"""
8+
self.provided = [False] * maxNumbers
9+
10+
def get(self) -> int:
11+
"""
12+
Provide a number which is not assigned to anyone.
13+
@return - Return an available number. Return -1 if none is available.
14+
"""
15+
for i in range(len(self.provided)):
16+
if not self.provided[i]:
17+
self.provided[i] = True
18+
return i
19+
return -1
20+
21+
def check(self, number: int) -> bool:
22+
"""
23+
Check if a number is available or not.
24+
"""
25+
return not self.provided[number]
26+
27+
def release(self, number: int) -> None:
28+
"""
29+
Recycle or release a number.
30+
"""
31+
self.provided[number] = False
32+
33+
34+
# Your PhoneDirectory object will be instantiated and called as such:
35+
# obj = PhoneDirectory(maxNumbers)
36+
# param_1 = obj.get()
37+
# param_2 = obj.check(number)
38+
# obj.release(number)

0 commit comments

Comments
 (0)