-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKWeakestRows.java
More file actions
46 lines (40 loc) · 1.22 KB
/
Copy pathKWeakestRows.java
File metadata and controls
46 lines (40 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.util.Arrays;
public class KWeakestRows {
static int[] kWeakest(int [][]mat, int k) {
int m = mat.length;
int n = mat[0].length;
int pairs[][] = new int[m][2];
for(int i = 0; i < m; i++) {
int strength = 0;
for(int j = 0; j < n; j++) {
if(mat[i][j] == 0) {
break;
}
strength++;
}
pairs[i][0] = strength;
pairs[i][1] = i;
}
Arrays.sort(pairs, (a,b) -> {
if(a[0] == b[0]) return a[1] - b[1];
else return a[0] - b[0];
});
int []indexes = new int[k];
for(int i = 0; i < k; i++) {
indexes[i] = pairs[i][1];
}
return indexes;
}
public static void main(String[] args) {
int mat[][] = {{1,1,0,0,0},
{1,1,1,1,0},
{1,0,0,0,0},
{1,1,0,0,0},
{1,1,1,1,1}};
int k = 3;
int output[] = kWeakest(mat, k);
for(int i = 0; i < output.length; i++) {
System.out.println(output[i]);
}
}
}