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
posted @ 2020-11-25 16:04  老鼠司令  阅读(61)  评论(0)    收藏  举报