[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]
相關文章
相關標籤/搜索