The k weakest rows in a matrix
August 20, 2022
heapProblem URL: The k weakest rows in a matrix
First we iterate through the whole matrix to count the number of 1's in the matrix and put it in an min heap. Then we extract top k elements from that heap.
class Solution:
def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:
count = []
for r in range(len(mat)):
cur = 0
for c in range(len(mat[0])):
if mat[r][c] == 1:
cur += 1
count.append((cur, r))
return [idx for cnt, idx in heapq.nsmallest(k, count)]
Time Complexity: O(n*m*log(k))
, n is the number of rows, m is the number of colums int the matrix.
Space Complexity: O(n)