美文网首页
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