Skip to content

Commit 61be039

Browse files
solves #2133: Check if Every Row and Column Contains All Numbers in java
1 parent 7a244e9 commit 61be039

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@
705705
| 2119 | [A Number After a Double Reversal](https://leetcode.com/problems/a-number-after-a-double-reversal) | [![Java](assets/java.png)](src/ANumberAfterADoubleReversal.java) | |
706706
| 2124 | [Check if All A's Appears Before All B's](https://leetcode.com/problems/check-if-all-as-appears-before-all-bs) | [![Java](assets/java.png)](src/CheckIfAllTheAsAppearBeforeAllTheBs.java) | |
707707
| 2129 | [Capitalize the Title](https://leetcode.com/problems/capitalize-the-title) | [![Java](assets/java.png)](src/CapitalizeTheTitle.java) | |
708-
| 2133 | [Check if Every Row and Column Contains All Numbers](https://leetcode.com/problems/check-if-every-row-and-column-contains-all-numbers) | | |
708+
| 2133 | [Check if Every Row and Column Contains All Numbers](https://leetcode.com/problems/check-if-every-row-and-column-contains-all-numbers) | [![Java](assets/java.png)](src/CheckIfEveryRowAndEveryColumnContainAllNumbers.java) | |
709709
| 2138 | [Divide a String Into Groups of Size k](https://leetcode.com/problems/divide-a-string-into-groups-of-size-k) | | |
710710
| 2144 | [Minimum Cost of Buying Candies With Discount](https://leetcode.com/problems/minimum-cost-of-buying-candies-with-discount) | | |
711711
| 2148 | [Count Elements With Strictly Smaller and Greater Elements](https://leetcode.com/problems/count-elements-with-strictly-smaller-and-greater-elements) | | |
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import java.util.HashSet;
2+
import java.util.Set;
3+
4+
public class CheckIfEveryRowAndEveryColumnContainAllNumbers {
5+
private int n;
6+
7+
public boolean checkValid(int[][] matrix) {
8+
this.n = matrix.length;
9+
return checkAllRows(matrix) && checkAllColumns(matrix);
10+
}
11+
12+
private boolean checkAllRows(int[][] matrix) {
13+
for (int[] row : matrix) {
14+
if (!isRowValid(row)) return false;
15+
}
16+
return true;
17+
}
18+
19+
private boolean isRowValid(int[] row) {
20+
final Set<Integer> numbers = new HashSet<>();
21+
for (int element: row) {
22+
if (element <= 0 || element > n) return false;
23+
if (numbers.contains(element)) return false;
24+
numbers.add(element);
25+
}
26+
return true;
27+
}
28+
29+
private boolean checkAllColumns(int[][] matrix) {
30+
for (int column = 0 ; column < n ; column++) {
31+
final Set<Integer> numbers = new HashSet<>();
32+
for (int row = 0 ; row < n ; row++) {
33+
int element = matrix[row][column];
34+
if (element < 0 || element > n) return false;
35+
if (numbers.contains(element)) return false;
36+
numbers.add(element);
37+
}
38+
}
39+
return true;
40+
}
41+
}

0 commit comments

Comments
 (0)