Skip to content

Commit fb34383

Browse files
committed
feat: add solutions to lc problems: No.2133,2134
* No.2133.Check if Every Row and Column Contains All Numbers * No.2134.Minimum Swaps to Group All 1's Together II
1 parent 87940c3 commit fb34383

File tree

12 files changed

+560
-11
lines changed

12 files changed

+560
-11
lines changed

solution/2100-2199/2133.Check if Every Row and Column Contains All Numbers/README.md

+105-2
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,57 @@
5555
<!-- 这里可写当前语言的特殊实现逻辑 -->
5656

5757
```python
58-
58+
class Solution:
59+
def checkValid(self, matrix: List[List[int]]) -> bool:
60+
n = len(matrix)
61+
for i in range(n):
62+
seen = [False] * n
63+
for j in range(n):
64+
v = matrix[i][j] - 1
65+
if seen[v]:
66+
return False
67+
seen[v] = True
68+
for j in range(n):
69+
seen = [False] * n
70+
for i in range(n):
71+
v = matrix[i][j] - 1
72+
if seen[v]:
73+
return False
74+
seen[v] = True
75+
return True
5976
```
6077

6178
### **Java**
6279

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

6582
```java
66-
83+
class Solution {
84+
public boolean checkValid(int[][] matrix) {
85+
int n = matrix.length;
86+
for (int i = 0; i < n; ++i) {
87+
boolean[] seen = new boolean[n];
88+
for (int j = 0; j < n; ++j) {
89+
int v = matrix[i][j] - 1;
90+
if (seen[v]) {
91+
return false;
92+
}
93+
seen[v] = true;
94+
}
95+
}
96+
for (int j = 0; j < n; ++j) {
97+
boolean[] seen = new boolean[n];
98+
for (int i = 0; i < n; ++i) {
99+
int v = matrix[i][j] - 1;
100+
if (seen[v]) {
101+
return false;
102+
}
103+
seen[v] = true;
104+
}
105+
}
106+
return true;
107+
}
108+
}
67109
```
68110

69111
### **TypeScript**
@@ -84,9 +126,70 @@ function checkValid(matrix: number[][]): boolean {
84126
}
85127
}
86128
return true;
129+
}
130+
```
131+
132+
### **C++**
133+
134+
```cpp
135+
class Solution {
136+
public:
137+
bool checkValid(vector<vector<int>>& matrix) {
138+
int n = matrix.size();
139+
for (int i = 0; i < n; ++i)
140+
{
141+
vector<bool> seen(n);
142+
for (int j = 0; j < n; ++j)
143+
{
144+
int v = matrix[i][j] - 1;
145+
if (seen[v]) return false;
146+
seen[v] = true;
147+
}
148+
}
149+
for (int j = 0; j < n; ++j)
150+
{
151+
vector<bool> seen(n);
152+
for (int i = 0; i < n; ++i)
153+
{
154+
int v = matrix[i][j] - 1;
155+
if (seen[v]) return false;
156+
seen[v] = true;
157+
}
158+
}
159+
return true;
160+
}
87161
};
88162
```
89163
164+
### **Go**
165+
166+
```go
167+
func checkValid(matrix [][]int) bool {
168+
n := len(matrix)
169+
for i := 0; i < n; i++ {
170+
seen := make([]bool, n)
171+
for j := 0; j < n; j++ {
172+
v := matrix[i][j] - 1
173+
if seen[v] {
174+
return false
175+
}
176+
seen[v] = true
177+
}
178+
}
179+
for j := 0; j < n; j++ {
180+
seen := make([]bool, n)
181+
for i := 0; i < n; i++ {
182+
v := matrix[i][j] - 1
183+
if seen[v] {
184+
return false
185+
}
186+
seen[v] = true
187+
}
188+
}
189+
return true
190+
}
191+
```
192+
90193
### **...**
91194

92195
```

solution/2100-2199/2133.Check if Every Row and Column Contains All Numbers/README_EN.md

+105-3
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,62 @@ Hence, we return false.
3636
<li><code>1 &lt;= matrix[i][j] &lt;= n</code></li>
3737
</ul>
3838

39-
4039
## Solutions
4140

4241
<!-- tabs:start -->
4342

4443
### **Python3**
4544

4645
```python
47-
46+
class Solution:
47+
def checkValid(self, matrix: List[List[int]]) -> bool:
48+
n = len(matrix)
49+
for i in range(n):
50+
seen = [False] * n
51+
for j in range(n):
52+
v = matrix[i][j] - 1
53+
if seen[v]:
54+
return False
55+
seen[v] = True
56+
for j in range(n):
57+
seen = [False] * n
58+
for i in range(n):
59+
v = matrix[i][j] - 1
60+
if seen[v]:
61+
return False
62+
seen[v] = True
63+
return True
4864
```
4965

5066
### **Java**
5167

5268
```java
53-
69+
class Solution {
70+
public boolean checkValid(int[][] matrix) {
71+
int n = matrix.length;
72+
for (int i = 0; i < n; ++i) {
73+
boolean[] seen = new boolean[n];
74+
for (int j = 0; j < n; ++j) {
75+
int v = matrix[i][j] - 1;
76+
if (seen[v]) {
77+
return false;
78+
}
79+
seen[v] = true;
80+
}
81+
}
82+
for (int j = 0; j < n; ++j) {
83+
boolean[] seen = new boolean[n];
84+
for (int i = 0; i < n; ++i) {
85+
int v = matrix[i][j] - 1;
86+
if (seen[v]) {
87+
return false;
88+
}
89+
seen[v] = true;
90+
}
91+
}
92+
return true;
93+
}
94+
}
5495
```
5596

5697
### **TypeScript**
@@ -69,9 +110,70 @@ function checkValid(matrix: number[][]): boolean {
69110
}
70111
}
71112
return true;
113+
}
114+
```
115+
116+
### **C++**
117+
118+
```cpp
119+
class Solution {
120+
public:
121+
bool checkValid(vector<vector<int>>& matrix) {
122+
int n = matrix.size();
123+
for (int i = 0; i < n; ++i)
124+
{
125+
vector<bool> seen(n);
126+
for (int j = 0; j < n; ++j)
127+
{
128+
int v = matrix[i][j] - 1;
129+
if (seen[v]) return false;
130+
seen[v] = true;
131+
}
132+
}
133+
for (int j = 0; j < n; ++j)
134+
{
135+
vector<bool> seen(n);
136+
for (int i = 0; i < n; ++i)
137+
{
138+
int v = matrix[i][j] - 1;
139+
if (seen[v]) return false;
140+
seen[v] = true;
141+
}
142+
}
143+
return true;
144+
}
72145
};
73146
```
74147
148+
### **Go**
149+
150+
```go
151+
func checkValid(matrix [][]int) bool {
152+
n := len(matrix)
153+
for i := 0; i < n; i++ {
154+
seen := make([]bool, n)
155+
for j := 0; j < n; j++ {
156+
v := matrix[i][j] - 1
157+
if seen[v] {
158+
return false
159+
}
160+
seen[v] = true
161+
}
162+
}
163+
for j := 0; j < n; j++ {
164+
seen := make([]bool, n)
165+
for i := 0; i < n; i++ {
166+
v := matrix[i][j] - 1
167+
if seen[v] {
168+
return false
169+
}
170+
seen[v] = true
171+
}
172+
}
173+
return true
174+
}
175+
```
176+
75177
### **...**
76178

77179
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public:
3+
bool checkValid(vector<vector<int>>& matrix) {
4+
int n = matrix.size();
5+
for (int i = 0; i < n; ++i)
6+
{
7+
vector<bool> seen(n);
8+
for (int j = 0; j < n; ++j)
9+
{
10+
int v = matrix[i][j] - 1;
11+
if (seen[v]) return false;
12+
seen[v] = true;
13+
}
14+
}
15+
for (int j = 0; j < n; ++j)
16+
{
17+
vector<bool> seen(n);
18+
for (int i = 0; i < n; ++i)
19+
{
20+
int v = matrix[i][j] - 1;
21+
if (seen[v]) return false;
22+
seen[v] = true;
23+
}
24+
}
25+
return true;
26+
}
27+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
func checkValid(matrix [][]int) bool {
2+
n := len(matrix)
3+
for i := 0; i < n; i++ {
4+
seen := make([]bool, n)
5+
for j := 0; j < n; j++ {
6+
v := matrix[i][j] - 1
7+
if seen[v] {
8+
return false
9+
}
10+
seen[v] = true
11+
}
12+
}
13+
for j := 0; j < n; j++ {
14+
seen := make([]bool, n)
15+
for i := 0; i < n; i++ {
16+
v := matrix[i][j] - 1
17+
if seen[v] {
18+
return false
19+
}
20+
seen[v] = true
21+
}
22+
}
23+
return true
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public boolean checkValid(int[][] matrix) {
3+
int n = matrix.length;
4+
for (int i = 0; i < n; ++i) {
5+
boolean[] seen = new boolean[n];
6+
for (int j = 0; j < n; ++j) {
7+
int v = matrix[i][j] - 1;
8+
if (seen[v]) {
9+
return false;
10+
}
11+
seen[v] = true;
12+
}
13+
}
14+
for (int j = 0; j < n; ++j) {
15+
boolean[] seen = new boolean[n];
16+
for (int i = 0; i < n; ++i) {
17+
int v = matrix[i][j] - 1;
18+
if (seen[v]) {
19+
return false;
20+
}
21+
seen[v] = true;
22+
}
23+
}
24+
return true;
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution:
2+
def checkValid(self, matrix: List[List[int]]) -> bool:
3+
n = len(matrix)
4+
for i in range(n):
5+
seen = [False] * n
6+
for j in range(n):
7+
v = matrix[i][j] - 1
8+
if seen[v]:
9+
return False
10+
seen[v] = True
11+
for j in range(n):
12+
seen = [False] * n
13+
for i in range(n):
14+
v = matrix[i][j] - 1
15+
if seen[v]:
16+
return False
17+
seen[v] = True
18+
return True

0 commit comments

Comments
 (0)