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 aaaa95b

Browse files
feat: add solutions to lc problem: No.1893.Check if All the Integers in a Range Are Covered
1 parent 055195c commit aaaa95b

File tree

5 files changed

+144
-2
lines changed

5 files changed

+144
-2
lines changed

‎solution/1800-1899/1893.Check if All the Integers in a Range Are Covered/README.md‎

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,71 @@
4848

4949
<!-- 这里可写通用的实现逻辑 -->
5050

51+
利用差分数组进行区间更新
52+
5153
<!-- tabs:start -->
5254

5355
### **Python3**
5456

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

5759
```python
58-
60+
class Solution:
61+
def isCovered(self, ranges: List[List[int]], left: int, right: int) -> bool:
62+
diff = [0 for i in range(52)]
63+
for rg in ranges:
64+
diff[rg[0]] += 1
65+
diff[rg[1] + 1] -= 1
66+
cur = 0
67+
for i, df in enumerate(diff):
68+
cur += df
69+
if left <= i <= right and cur == 0:
70+
return False
71+
return True
5972
```
6073

6174
### **Java**
6275

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

6578
```java
79+
class Solution {
80+
public boolean isCovered(int[][] ranges, int left, int right) {
81+
int[] diff = new int[52];
82+
for (int[] range : ranges) {
83+
diff[range[0]]++;
84+
diff[range[1] + 1]--;
85+
}
86+
int cur = 0;
87+
for (int i = 0; i < 52; i++) {
88+
cur += diff[i];
89+
if (left <= i && i <= right && cur == 0) {
90+
return false;
91+
}
92+
}
93+
return true;
94+
}
95+
}
96+
```
6697

98+
### **Go**
99+
100+
```go
101+
func isCovered(ranges [][]int, left int, right int) bool {
102+
diff := make([]int, 52)
103+
for _, rg := range ranges {
104+
diff[rg[0]]++
105+
diff[rg[1]+1]--
106+
}
107+
cur := 0
108+
for i, df := range diff {
109+
cur += df
110+
if i >= left && i <= right && cur == 0 {
111+
return false
112+
}
113+
}
114+
return true
115+
}
67116
```
68117

69118
### **...**

‎solution/1800-1899/1893.Check if All the Integers in a Range Are Covered/README_EN.md‎

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,67 @@
4242

4343
## Solutions
4444

45+
Interval update using difference array.
46+
4547
<!-- tabs:start -->
4648

4749
### **Python3**
4850

4951
```python
50-
52+
class Solution:
53+
def isCovered(self, ranges: List[List[int]], left: int, right: int) -> bool:
54+
diff = [0 for i in range(52)]
55+
for rg in ranges:
56+
diff[rg[0]] += 1
57+
diff[rg[1] + 1] -= 1
58+
cur = 0
59+
for i, df in enumerate(diff):
60+
cur += df
61+
if left <= i <= right and cur == 0:
62+
return False
63+
return True
5164
```
5265

5366
### **Java**
5467

5568
```java
69+
class Solution {
70+
public boolean isCovered(int[][] ranges, int left, int right) {
71+
int[] diff = new int[52];
72+
for (int[] range : ranges) {
73+
diff[range[0]]++;
74+
diff[range[1] + 1]--;
75+
}
76+
int cur = 0;
77+
for (int i = 0; i < 52; i++) {
78+
cur += diff[i];
79+
if (left <= i && i <= right && cur == 0) {
80+
return false;
81+
}
82+
}
83+
return true;
84+
}
85+
}
86+
```
5687

88+
### **Go**
89+
90+
```go
91+
func isCovered(ranges [][]int, left int, right int) bool {
92+
diff := make([]int, 52)
93+
for _, rg := range ranges {
94+
diff[rg[0]]++
95+
diff[rg[1]+1]--
96+
}
97+
cur := 0
98+
for i, df := range diff {
99+
cur += df
100+
if i >= left && i <= right && cur == 0 {
101+
return false
102+
}
103+
}
104+
return true
105+
}
57106
```
58107

59108
### **...**
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
func isCovered(ranges [][]int, left int, right int) bool {
2+
diff := make([]int, 52)
3+
for _, rg := range ranges {
4+
diff[rg[0]]++
5+
diff[rg[1]+1]--
6+
}
7+
cur := 0
8+
for i, df := range diff {
9+
cur += df
10+
if i >= left && i <= right && cur == 0 {
11+
return false
12+
}
13+
}
14+
return true
15+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public boolean isCovered(int[][] ranges, int left, int right) {
3+
int[] diff = new int[52];
4+
for (int[] range : ranges) {
5+
diff[range[0]]++;
6+
diff[range[1] + 1]--;
7+
}
8+
int cur = 0;
9+
for (int i = 0; i < 52; i++) {
10+
cur += diff[i];
11+
if (left <= i && i <= right && cur == 0) {
12+
return false;
13+
}
14+
}
15+
return true;
16+
}
17+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution:
2+
def isCovered(self, ranges: List[List[int]], left: int, right: int) -> bool:
3+
diff = [0 for i in range(52)]
4+
for rg in ranges:
5+
diff[rg[0]] += 1
6+
diff[rg[1] + 1] -= 1
7+
cur = 0
8+
for i, df in enumerate(diff):
9+
cur += df
10+
if left <= i <= right and cur == 0:
11+
return False
12+
return True

0 commit comments

Comments
(0)

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