1
/**
2
* @param {number[][]} mat
3
* @param {number} k
4
* @return {number[]}
5

6
* S: O(N)
7
* T: O(N*logN)
8
*/
9
var kWeakestRows = function (mat, k) {
10
return mat
11
.reduce((acc, row, index) => {
12
let left = 0;
13
let right = row.length - 1;
14

15
while (left <= right) {
16
let mid = Math.floor((left + right) / 2);
17

18
if (row[mid]) {
19
left = mid + 1;
20
} else {
21
right = mid - 1;
22
}
23
}
24

25
acc.push({ index, value: left });
26

27
return acc;
28
}, [])
29
.sort((a, b) => a.value - b.value)
30
.splice(0, k)
31
.map((item) => item.index);
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0