Skip to content

Commit 15492af

Browse files
authored
feat: add ts solution to lc problem: No.0731 (doocs#3573)
1 parent 1dedc2b commit 15492af

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

solution/0700-0799/0731.My Calendar II/README.md

+37
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,43 @@ func (this *MyCalendarTwo) Book(start int, end int) bool {
208208
*/
209209
```
210210

211+
#### TypeScript
212+
213+
```ts
214+
class MyCalendarTwo {
215+
private events: [number, number][];
216+
private overlaps: [number, number][];
217+
218+
constructor() {
219+
this.events = [];
220+
this.overlaps = [];
221+
}
222+
223+
book(start: number, end: number): boolean {
224+
for (const [s, e] of this.overlaps) {
225+
if (Math.max(start, s) < Math.min(end, e)) {
226+
return false;
227+
}
228+
}
229+
230+
for (const [s, e] of this.events) {
231+
if (Math.max(start, s) < Math.min(end, e)) {
232+
this.overlaps.push([Math.max(start, s), Math.min(end, e)]);
233+
}
234+
}
235+
236+
this.events.push([start, end]);
237+
return true;
238+
}
239+
}
240+
241+
/**
242+
* Your MyCalendarTwo object will be instantiated and called as such:
243+
* var obj = new MyCalendarTwo()
244+
* var param_1 = obj.book(start,end)
245+
*/
246+
```
247+
211248
#### JavaScript
212249

213250
```js

solution/0700-0799/0731.My Calendar II/README_EN.md

+37
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,43 @@ func (this *MyCalendarTwo) Book(start int, end int) bool {
206206
*/
207207
```
208208

209+
#### TypeScript
210+
211+
```ts
212+
class MyCalendarTwo {
213+
private events: [number, number][];
214+
private overlaps: [number, number][];
215+
216+
constructor() {
217+
this.events = [];
218+
this.overlaps = [];
219+
}
220+
221+
book(start: number, end: number): boolean {
222+
for (const [s, e] of this.overlaps) {
223+
if (Math.max(start, s) < Math.min(end, e)) {
224+
return false;
225+
}
226+
}
227+
228+
for (const [s, e] of this.events) {
229+
if (Math.max(start, s) < Math.min(end, e)) {
230+
this.overlaps.push([Math.max(start, s), Math.min(end, e)]);
231+
}
232+
}
233+
234+
this.events.push([start, end]);
235+
return true;
236+
}
237+
}
238+
239+
/**
240+
* Your MyCalendarTwo object will be instantiated and called as such:
241+
* var obj = new MyCalendarTwo()
242+
* var param_1 = obj.book(start,end)
243+
*/
244+
```
245+
209246
#### JavaScript
210247

211248
```js
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class MyCalendarTwo {
2+
private events: [number, number][];
3+
private overlaps: [number, number][];
4+
5+
constructor() {
6+
this.events = [];
7+
this.overlaps = [];
8+
}
9+
10+
book(start: number, end: number): boolean {
11+
for (const [s, e] of this.overlaps) {
12+
if (Math.max(start, s) < Math.min(end, e)) {
13+
return false;
14+
}
15+
}
16+
17+
for (const [s, e] of this.events) {
18+
if (Math.max(start, s) < Math.min(end, e)) {
19+
this.overlaps.push([Math.max(start, s), Math.min(end, e)]);
20+
}
21+
}
22+
23+
this.events.push([start, end]);
24+
return true;
25+
}
26+
}
27+
28+
/**
29+
* Your MyCalendarTwo object will be instantiated and called as such:
30+
* var obj = new MyCalendarTwo()
31+
* var param_1 = obj.book(start,end)
32+
*/

0 commit comments

Comments
 (0)