LeetCode Algorithm 1337. 矩阵中战斗力最弱的 K 行

Posted Alex_996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 1337. 矩阵中战斗力最弱的 K 行相关的知识,希望对你有一定的参考价值。

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

Ideas

Top K 问题一般都是通过堆来解决,这道题要求的是最弱的 K 行,说明这是一个小根堆问题。

题目中是根据军人的数量来衡量战斗力的,而军人的数量其实就是当前行的列表求和,所以我们可以将(当前行列表求和,行索引)构造一个小根堆,然后输出 Top K 就ok啦。

Code

Python

import heapq
from typing import List


class Solution:
    def kWeakestRows(self, mat: List[List[int]], k: int) -> List[int]:
        power = [(sum(val), idx) for idx, val in enumerate(mat)]
        heapq.heapify(power)
        return [heapq.heappop(power)[1] for _ in range(k)]

以上是关于LeetCode Algorithm 1337. 矩阵中战斗力最弱的 K 行的主要内容,如果未能解决你的问题,请参考以下文章

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

Python描述 LeetCode 1337. 矩阵中战斗力最弱的 K 行

leetcode 1337. The K Weakest Rows in a Matrix

leetcode1337. The K Weakest Rows in a Matrix

leetcode1337. 矩阵中战斗力最弱的K行

LeetCode --- 1337. The K Weakest Rows in a Matrix 解题报告