1337. 方阵中战斗力最弱的 K 行
思路
很显然这个是针对每行的个数进行排序,但是比较麻烦的一点是如果相同的话,要返回前边的索引。
这里有一种很有用很简单并且高效的的解决办法,就是对元祖进行排序
没错,python可以对元祖进行排序,先对第一个元素进行排序,如果相同,则对相通的元素对第二个元素进行排序,依次递推。
所以我们可以用一个列表保存元祖,每个元祖有两个元素(line_num,line_index)表示某行的1的个数和下标
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]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。