leetcode1337. 方阵中战斗力最弱的 K 行(优先队列)
给你一个大小为 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 行(优先队列)相关推荐
- LeetCode 1337. 方阵中战斗力最弱的 K 行(优先队列)
1. 题目 给你一个大小为 m * n 的方阵 mat,方阵由若干军人和平民组成,分别用 0 和 1 表示. 请你返回方阵中战斗力最弱的 k 行的索引,按从最弱到最强排序. 如果第 i 行的军人数量少 ...
- 1337. 矩阵中战斗力最弱的 K 行
链接:1337. 矩阵中战斗力最弱的 K 行 题解: class Solution { public:int first_count(const vector<int>& row) ...
- LeetCode题解:矩阵中战斗力最弱的 K 行
矩阵中战斗力最弱的 K 行 一.题目 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示. 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序. ...
- 【LeetCode】1337. 矩阵中战斗力最弱的 K 行(C++)
1337. 矩阵中战斗力最弱的 K 行(C++) 1 题目描述 2 示例描述 2.1 示例1 2.2 示例2 3 解题提示 4 解题思路 5 源码详解(C++) 6 错误思路 7 源码详解(C++) ...
- 【每日挠头算法题】LeetCode 1337. 矩阵中战斗力最弱的 K 行 —— 二分 + 排序 / 堆
- 7-3 最矮的巨人 (4 分)操场上有N x N个“巨人”按N行N列的矩阵形式列队,请编程找出该方阵中所有“最矮的巨人”。
7-3 最矮的巨人 (4 分) 操场上有N x N个"巨人"按N行N列的矩阵形式列队,请编程找出该方阵中所有"最矮的巨人". 所谓"最矮的巨人&quo ...
- 海量数据中,寻找最小的k个数。
维护k个元素的最大堆,即用容量为k的最大堆存储最小的k个数,k1设为大顶堆中最大元素.遍历一次数列,n,每次遍历一个元素x,与堆顶元素比 较,x<kmax,更新堆,否则不更新堆. 1 // 海量 ...
- C语言试题十七之用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中
1. 题目 请编写一个函数int function(int *s,int t,int *k),用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中. 2 .温馨提示 C语言试题汇总里可用于计算 ...
- 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)
确定S中最接近中位数的k个元素 (算法导论第三版9.3-7题) 时间复杂度O(n) vector<int> k_elements_closest_to_median(int *array, ...
最新文章
- React useState,useEffect ,Hook是什么?什么是副作用?
- 【swjtu】数字电路实验6_旋转编码器人机交互电路设计
- 独家|图说Pandas中旋转和重塑函数
- #pragma指令与#ifndef指令
- mysql master-slave_mysql 同步 master-slave
- 《深入理解Java虚拟机》读书笔记七
- Spring Boot 应用如何提高服务吞吐量?
- 03_设置轴标签和范围、轴的标签(Labels on Axes)、定义轴的范围、使用linspace定义X值 (“linspace“ to Define X Values)
- 每日程序C语言47-找到年龄最大的人并输出
- 【原创】packetbeat 之“request-response 错误关联”问题
- LeetCode动态规划 环形子数组的最大和
- 电脑广告弹窗多?安利一下:程序员常用 7 款Chrome去广告插件
- 醒醒吧,这世界上根本没有稳定的工作
- Flink 异步IO优化任务
- 苹果手机输入屏保后锁屏_苹果手机动态锁屏屏保怎么设置
- 嵌入式中的通讯协议——UART、I2C、SPI、DMA
- 筋膜悬吊面部提升术后悔死了,几天消肿多久有效果
- 位置不可用无法访问 chkdsk无法修复的文件恢复方法
- php 干扰曲线,曲线干扰控制
- Index out of range using input dim 2; input has only 2 dims
热门文章
- 保驾护航金三银四,妈妈再也不用担心我找工作了!
- 中小型研发团队架构实践三要点(转自原携程架构师张辉清)
- 函数的定义,语法,二维数组,几个练习题
- 几种机器学习算法的优缺点
- 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样...
- Gigaset ME/pure/pro体验:就是这个德味
- SqlHelper模板
- spring cloud各个微服务打包到docker容器内
- activiti 为什么需要采用乐观锁?
- 【效率专精系列】善用API统一描述语言提升RestAPI开发效率