给你一个大小为 m * n 的方阵 mat,方阵由若干军人和平民组成,分别用 1 和 0 表示。

请你返回方阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。

如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。

军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。

示例 1:

输入:mat =
[[1,1,0,0,0],
[1,1,1,1,0],
[1,0,0,0,0],
[1,1,0,0,0],
[1,1,1,1,1]],
k = 3
输出:[2,0,3]
解释:
每行中的军人数目:
行 0 -> 2
行 1 -> 4
行 2 -> 1
行 3 -> 2
行 4 -> 5
从最弱到最强对这些行排序后得到 [2,0,3,1,4]

代码

class Solution {public int[] kWeakestRows(int[][] mat, int k) {int i=0;PriorityQueue<int[]> priorityQueue=new PriorityQueue<>((o1, o2) -> o1[0]==o2[0]?o1[1]-o2[1]:o1[0]-o2[0]);//排序规则for(int[] c:mat){int ans=0;for(int d:c) if(d==0) break;  else ans++;//统计士兵个数priorityQueue.offer(new int[]{ans,i});i++;}int[] res=new int[k];for(int j=0;j<k;j++) res[j]=priorityQueue.poll()[1];//选出战力最低的前n名return res;}
}

leetcode1337. 方阵中战斗力最弱的 K 行(优先队列)相关推荐

  1. LeetCode 1337. 方阵中战斗力最弱的 K 行(优先队列)

    1. 题目 给你一个大小为 m * n 的方阵 mat,方阵由若干军人和平民组成,分别用 0 和 1 表示. 请你返回方阵中战斗力最弱的 k 行的索引,按从最弱到最强排序. 如果第 i 行的军人数量少 ...

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

    链接:1337. 矩阵中战斗力最弱的 K 行 题解: class Solution { public:int first_count(const vector<int>& row) ...

  3. LeetCode题解:矩阵中战斗力最弱的 K 行

    矩阵中战斗力最弱的 K 行 一.题目 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示. 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序. ...

  4. 【LeetCode】1337. 矩阵中战斗力最弱的 K 行(C++)

    1337. 矩阵中战斗力最弱的 K 行(C++) 1 题目描述 2 示例描述 2.1 示例1 2.2 示例2 3 解题提示 4 解题思路 5 源码详解(C++) 6 错误思路 7 源码详解(C++) ...

  5. 【每日挠头算法题】LeetCode 1337. 矩阵中战斗力最弱的 K 行 —— 二分 + 排序 / 堆

  6. 7-3 最矮的巨人 (4 分)操场上有N x N个“巨人”按N行N列的矩阵形式列队,请编程找出该方阵中所有“最矮的巨人”。

    7-3 最矮的巨人 (4 分) 操场上有N x N个"巨人"按N行N列的矩阵形式列队,请编程找出该方阵中所有"最矮的巨人". 所谓"最矮的巨人&quo ...

  7. 海量数据中,寻找最小的k个数。

    维护k个元素的最大堆,即用容量为k的最大堆存储最小的k个数,k1设为大顶堆中最大元素.遍历一次数列,n,每次遍历一个元素x,与堆顶元素比 较,x<kmax,更新堆,否则不更新堆. 1 // 海量 ...

  8. C语言试题十七之用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中

    1. 题目 请编写一个函数int function(int *s,int t,int *k),用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中. 2 .温馨提示 C语言试题汇总里可用于计算 ...

  9. 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)

    确定S中最接近中位数的k个元素 (算法导论第三版9.3-7题) 时间复杂度O(n) vector<int> k_elements_closest_to_median(int *array, ...

最新文章

  1. React useState,useEffect ,Hook是什么?什么是副作用?
  2. 【swjtu】数字电路实验6_旋转编码器人机交互电路设计
  3. 独家|图说Pandas中旋转和重塑函数
  4. #pragma指令与#ifndef指令
  5. mysql master-slave_mysql 同步 master-slave
  6. 《深入理解Java虚拟机》读书笔记七
  7. Spring Boot 应用如何提高服务吞吐量?
  8. 03_设置轴标签和范围、轴的标签(Labels on Axes)、定义轴的范围、使用linspace定义X值 (“linspace“ to Define X Values)
  9. 每日程序C语言47-找到年龄最大的人并输出
  10. 【原创】packetbeat 之“request-response 错误关联”问题
  11. LeetCode动态规划 环形子数组的最大和
  12. 电脑广告弹窗多?安利一下:程序员常用 7 款Chrome去广告插件
  13. 醒醒吧,这世界上根本没有稳定的工作
  14. Flink 异步IO优化任务
  15. 苹果手机输入屏保后锁屏_苹果手机动态锁屏屏保怎么设置
  16. 嵌入式中的通讯协议——UART、I2C、SPI、DMA
  17. 筋膜悬吊面部提升术后悔死了,几天消肿多久有效果
  18. 位置不可用无法访问 chkdsk无法修复的文件恢复方法
  19. php 干扰曲线,曲线干扰控制
  20. Index out of range using input dim 2; input has only 2 dims

热门文章

  1. 保驾护航金三银四,妈妈再也不用担心我找工作了!
  2. 中小型研发团队架构实践三要点(转自原携程架构师张辉清)
  3. 函数的定义,语法,二维数组,几个练习题
  4. 几种机器学习算法的优缺点
  5. 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样...
  6. Gigaset ME/pure/pro体验:就是这个德味
  7. SqlHelper模板
  8. spring cloud各个微服务打包到docker容器内
  9. activiti 为什么需要采用乐观锁?
  10. 【效率专精系列】善用API统一描述语言提升RestAPI开发效率