很顯然這個是針對每行的個數進行排序,可是比較麻煩的一點是若是相同的話,要返回前邊的索引。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]