LeetCode #1337. The K Weakest Rows in a Matrix
题目
1337. The K Weakest Rows in a Matrix
解题方法
建立一个数组soldiersnum,其中以元组形式存储每行士兵个数和行号,然后对其进行排序,取出其中前k个元素的行号返回即可。
时间复杂度:O(nlogn + mn),最坏情况下遍历整个M*N矩阵
空间复杂度:O(m),m是矩阵行数
代码
class Solution:
def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:
soldiersnum = []
for i in range(len(mat)):
cursoldier = 0
for j in range(len(mat[i])):
if mat[i][j]:
cursoldier += 1
else:
break
soldiersnum.append((cursoldier, i))
soldiersnum.sort()
rat = []
for i in range(k):
rat.append(soldiersnum[i][1])
return rat

浙公网安备 33010602011771号