美文网首页
1337. The K Weakest Rows in a Ma

1337. The K Weakest Rows in a Ma

作者: 鱼欲遇雨 | 来源:发表于2020-02-05 22:06 被阅读0次

    解法一 排序

    1. 排序的参数的就是每一行的和
    2. index和每一行的和的对应关系( f = sum(data[i]) )
    3. 然后取前k个数
      注意点
    • lambda表达式本质上就是一个匿名函数

    解法二 top k问题解法 使用heapq

    1. 遍历list, 将index和sum(data[index]),使用set集合
    2. 放入到heapq中,如果长度大于k了, 就pop

    注意点

    • heapq,pop的时候pop的最小的,求最小的,需要pop最大的,此时需要使用复数
    • 取值的时候使用nlargest函数

    解法三 二分法 + 最大堆

    1. 在sum中需要遍历求和,此时可以使用二分法进行求和
    2. 因为有个条件是1总是在0的前面

    注意点
    最大堆和最小堆的概念

    • 最大堆
      • 概念: 根节点的值最大
      • 应用: 计算top k 最小的节点
    • 最小堆
      • 概念: 根节点的值最小
      • 应用: 计算top k 最大的节点

    相关文章

      网友评论

          本文标题:1337. The K Weakest Rows in a Ma

          本文链接:https://www.haomeiwen.com/subject/sqpexhtx.html