[Leetcode题解]方阵中战斗力最弱的 K 行

1337. 方阵中战斗力最弱的 K 行

image.png

思路

很显然这个是针对每行的个数进行排序,可是比较麻烦的一点是若是相同的话,要返回前边的索引。python

这里有一种颇有用很简单而且高效的的解决办法,就是对元祖进行排序app

没错,python能够对元祖进行排序,先对第一个元素进行排序,若是相同,则对相通的元素对第二个元素进行排序,依次递推。spa

因此咱们能够用一个列表保存元祖,每一个元祖有两个元素(line_num,line_index)表示某行的1的个数和下标code

class Solution(object):
    def kWeakestRows(self, mat, k):
        """
        :type mat: List[List[int]]
        :type k: int
        :rtype: List[int]
        """

        l,ans = [],[]

        for index,line in enumerate(mat):
            l.append((sum(line),index))

        l = sorted(l)

        for _,index in l:
            ans.append(index)

        return ans[:k]
相关文章
相关标签/搜索