Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 844c328

Browse files
committed
feat: add solutions to lc problem: No.0253,1109
1 parent fd32f5a commit 844c328

File tree

9 files changed

+257
-4
lines changed

9 files changed

+257
-4
lines changed

‎solution/0200-0299/0253.Meeting Rooms II/README.md‎

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,97 @@
3333
<li><code>0 <= start<sub>i</sub> < end<sub>i</sub> <= 10<sup>6</sup></code></li>
3434
</ul>
3535

36-
3736
## 解法
3837

3938
<!-- 这里可写通用的实现逻辑 -->
4039

40+
差分数组。
41+
4142
<!-- tabs:start -->
4243

4344
### **Python3**
4445

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

4748
```python
48-
49+
class Solution:
50+
def minMeetingRooms(self, intervals: List[List[int]]) -> int:
51+
delta = [0] * 1000010
52+
for start, end in intervals:
53+
delta[start] += 1
54+
delta[end] -= 1
55+
for i in range(len(delta) - 1):
56+
delta[i + 1] += delta[i]
57+
return max(delta)
4958
```
5059

5160
### **Java**
5261

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

5564
```java
65+
class Solution {
66+
public int minMeetingRooms(int[][] intervals) {
67+
int n = 1000010;
68+
int[] delta = new int[n];
69+
for (int[] e : intervals) {
70+
++delta[e[0]];
71+
--delta[e[1]];
72+
}
73+
int res = delta[0];
74+
for (int i = 1; i < n; ++i) {
75+
delta[i] += delta[i - 1];
76+
res = Math.max(res, delta[i]);
77+
}
78+
return res;
79+
}
80+
}
81+
```
82+
83+
### **C++**
84+
85+
```cpp
86+
class Solution {
87+
public:
88+
int minMeetingRooms(vector<vector<int>>& intervals) {
89+
int n = 1000010;
90+
vector<int> delta(n);
91+
for (auto e : intervals) {
92+
++delta[e[0]];
93+
--delta[e[1]];
94+
}
95+
for (int i = 0; i < n - 1; ++i) {
96+
delta[i + 1] += delta[i];
97+
}
98+
return *max_element(delta.begin(), delta.end());
99+
}
100+
};
101+
```
56102
103+
### **Go**
104+
105+
```go
106+
func minMeetingRooms(intervals [][]int) int {
107+
n := 1000010
108+
delta := make([]int, n)
109+
for _, e := range intervals {
110+
delta[e[0]]++
111+
delta[e[1]]--
112+
}
113+
res := delta[0]
114+
for i := 1; i < n; i++ {
115+
delta[i] += delta[i-1]
116+
res = max(res, delta[i])
117+
}
118+
return res
119+
}
120+
121+
func max(a, b int) int {
122+
if a > b {
123+
return a
124+
}
125+
return b
126+
}
57127
```
58128

59129
### **...**

‎solution/0200-0299/0253.Meeting Rooms II/README_EN.md‎

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,89 @@
2222
<li><code>0 &lt;= start<sub>i</sub> &lt; end<sub>i</sub> &lt;= 10<sup>6</sup></code></li>
2323
</ul>
2424

25-
2625
## Solutions
2726

2827
<!-- tabs:start -->
2928

3029
### **Python3**
3130

3231
```python
33-
32+
class Solution:
33+
def minMeetingRooms(self, intervals: List[List[int]]) -> int:
34+
delta = [0] * 1000010
35+
for start, end in intervals:
36+
delta[start] += 1
37+
delta[end] -= 1
38+
for i in range(len(delta) - 1):
39+
delta[i + 1] += delta[i]
40+
return max(delta)
3441
```
3542

3643
### **Java**
3744

3845
```java
46+
class Solution {
47+
public int minMeetingRooms(int[][] intervals) {
48+
int n = 1000010;
49+
int[] delta = new int[n];
50+
for (int[] e : intervals) {
51+
++delta[e[0]];
52+
--delta[e[1]];
53+
}
54+
int res = delta[0];
55+
for (int i = 1; i < n; ++i) {
56+
delta[i] += delta[i - 1];
57+
res = Math.max(res, delta[i]);
58+
}
59+
return res;
60+
}
61+
}
62+
```
63+
64+
### **C++**
65+
66+
```cpp
67+
class Solution {
68+
public:
69+
int minMeetingRooms(vector<vector<int>>& intervals) {
70+
int n = 1000010;
71+
vector<int> delta(n);
72+
for (auto e : intervals) {
73+
++delta[e[0]];
74+
--delta[e[1]];
75+
}
76+
for (int i = 0; i < n - 1; ++i) {
77+
delta[i + 1] += delta[i];
78+
}
79+
return *max_element(delta.begin(), delta.end());
80+
}
81+
};
82+
```
3983
84+
### **Go**
85+
86+
```go
87+
func minMeetingRooms(intervals [][]int) int {
88+
n := 1000010
89+
delta := make([]int, n)
90+
for _, e := range intervals {
91+
delta[e[0]]++
92+
delta[e[1]]--
93+
}
94+
res := delta[0]
95+
for i := 1; i < n; i++ {
96+
delta[i] += delta[i-1]
97+
res = max(res, delta[i])
98+
}
99+
return res
100+
}
101+
102+
func max(a, b int) int {
103+
if a > b {
104+
return a
105+
}
106+
return b
107+
}
40108
```
41109

42110
### **...**
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public:
3+
int minMeetingRooms(vector<vector<int>>& intervals) {
4+
int n = 1000010;
5+
vector<int> delta(n);
6+
for (auto e : intervals) {
7+
++delta[e[0]];
8+
--delta[e[1]];
9+
}
10+
for (int i = 0; i < n - 1; ++i) {
11+
delta[i + 1] += delta[i];
12+
}
13+
return *max_element(delta.begin(), delta.end());
14+
}
15+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
func minMeetingRooms(intervals [][]int) int {
2+
n := 1000010
3+
delta := make([]int, n)
4+
for _, e := range intervals {
5+
delta[e[0]]++
6+
delta[e[1]]--
7+
}
8+
res := delta[0]
9+
for i := 1; i < n; i++ {
10+
delta[i] += delta[i-1]
11+
res = max(res, delta[i])
12+
}
13+
return res
14+
}
15+
16+
func max(a, b int) int {
17+
if a > b {
18+
return a
19+
}
20+
return b
21+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public int minMeetingRooms(int[][] intervals) {
3+
int n = 1000010;
4+
int[] delta = new int[n];
5+
for (int[] e : intervals) {
6+
++delta[e[0]];
7+
--delta[e[1]];
8+
}
9+
int res = delta[0];
10+
for (int i = 1; i < n; ++i) {
11+
delta[i] += delta[i - 1];
12+
res = Math.max(res, delta[i]);
13+
}
14+
return res;
15+
}
16+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def minMeetingRooms(self, intervals: List[List[int]]) -> int:
3+
delta = [0] * 1000010
4+
for start, end in intervals:
5+
delta[start] += 1
6+
delta[end] -= 1
7+
for i in range(len(delta) - 1):
8+
delta[i + 1] += delta[i]
9+
return max(delta)

‎solution/1100-1199/1109.Corporate Flight Bookings/README.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858

5959
<!-- 这里可写通用的实现逻辑 -->
6060

61+
差分数组。
62+
6163
<!-- tabs:start -->
6264

6365
### **Python3**
@@ -172,6 +174,25 @@ var corpFlightBookings = function(bookings, n) {
172174
};
173175
```
174176

177+
### **Go**
178+
179+
```go
180+
func corpFlightBookings(bookings [][]int, n int) []int {
181+
delta := make([]int, n)
182+
for _, booking := range bookings {
183+
first, last, seats := booking[0], booking[1], booking[2]
184+
delta[first-1] += seats
185+
if last < n {
186+
delta[last] -= seats
187+
}
188+
}
189+
for i := 0; i < n-1; i++ {
190+
delta[i+1] += delta[i]
191+
}
192+
return delta
193+
}
194+
```
195+
175196
### **...**
176197

177198
```

‎solution/1100-1199/1109.Corporate Flight Bookings/README_EN.md‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,25 @@ var corpFlightBookings = function(bookings, n) {
163163
};
164164
```
165165

166+
### **Go**
167+
168+
```go
169+
func corpFlightBookings(bookings [][]int, n int) []int {
170+
delta := make([]int, n)
171+
for _, booking := range bookings {
172+
first, last, seats := booking[0], booking[1], booking[2]
173+
delta[first-1] += seats
174+
if last < n {
175+
delta[last] -= seats
176+
}
177+
}
178+
for i := 0; i < n-1; i++ {
179+
delta[i+1] += delta[i]
180+
}
181+
return delta
182+
}
183+
```
184+
166185
### **...**
167186

168187
```
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func corpFlightBookings(bookings [][]int, n int) []int {
2+
delta := make([]int, n)
3+
for _, booking := range bookings {
4+
first, last, seats := booking[0], booking[1], booking[2]
5+
delta[first-1] += seats
6+
if last < n {
7+
delta[last] -= seats
8+
}
9+
}
10+
for i := 0; i < n-1; i++ {
11+
delta[i+1] += delta[i]
12+
}
13+
return delta
14+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /