【LeetCode每日一题】2397. 被列覆盖的最多行数

2024-1-4

文章目录

    • [2397. 被列覆盖的最多行数](https://leetcode.cn/problems/maximum-rows-covered-by-columns/)
            • 方法:二进制枚举

2397. 被列覆盖的最多行数

在这里插入图片描述

在这里插入图片描述

方法:二进制枚举

1.获取矩阵的行数和列数,并创建一个大小为m的一维数组rows来保存每行的状态

2.通过遍历矩阵的每个元素,将每行的状态用位运算保存到rows数组中。

3.通过使用位掩码mask来遍历所有可能的行选择情况

4.如果mask二进制表示中1的个数不等于numSelect,则跳过当前循环。

5.计算在当前行选择情况下,有多少行满足被选择行的状态,即与mask进行位与运算后等于自身的行数

6.代码更新保存结果的变量ans,取当前结果与新计算的行数满足条件的行数之间的较大值。

public int maximumRows(int[][] matrix, int numSelect) {int m = matrix.length; // 获取矩阵的行数int n = matrix[0].length; // 获取矩阵的列数int[] rows = new int[m]; // 创建一个长度为m的一维数组来保存每行的状态for (int i = 0; i < m; ++i) { // 遍历矩阵的行for (int j = 0; j < n; ++j) { // 遍历矩阵的列if (matrix[i][j] == 1) { // 如果当前元素为1rows[i] |= 1 << j; // 利用位运算将当前行的状态保存到rows数组中}}}int ans = 0; // 初始化结果变量为0for (int mask = 1; mask < 1 << n; ++mask) { // 通过位掩码mask遍历所有可能的行选择情况if (Integer.bitCount(mask) != numSelect) { // 如果mask的二进制表示中1的个数不等于numSelectcontinue; // 跳过当前循环,继续下一次循环}int t = 0; // 用于计数满足条件的行数for (int x : rows) { // 遍历rows数组中的每个元素if ((x & mask) == x) { // 如果当前行的状态与mask进行位与运算后等于自身++t; // 将计数器t加1}}ans = Math.max(ans, t); // 更新保存结果的变量ans,取当前结果与新计算的行数满足条件的行数之间的较大值}return ans; // 返回结果
}

点击移步博客主页,欢迎光临~

偷cyk的图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/324148.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter接口测试响应数据中文显示为Unicode码的解决方法

问题&#xff1a;使用jmeter测试接口&#xff0c;返回响应数据汉字显示为Unicode 解决结果&#xff1a; 解决过程&#xff1a; 1.修改jmeter配置文件中的默认编码 在Jmeter的安装路径下打开bin文件夹下的jmeter.properties文件&#xff0c;搜索关键词default.encoding定位到语句…

深入了解Swagger注解:@ApiModel和@ApiModelProperty实用指南

在现代软件开发中&#xff0c;提供清晰全面的 API 文档 至关重要。ApiModel 和 ApiModelProperty 这样的代码注解在此方面表现出色&#xff0c;通过增强模型及其属性的元数据来丰富文档内容。它们的主要功能是为这些元素命名和描述&#xff0c;使生成的 API 文档更加明确。 Api…

图片上的水印怎么添加?简单易上手的3个方法

图片上的水印怎么添加&#xff1f;水印是一种透明的文字或图像叠加在原始图片上的技术。它能够涵盖版权信息、公司商标、作者名字或其他个人标识。很多人会通过添加水印的方法&#xff0c;来确保图片在分享或者是公开使用的时候&#xff0c;依然能够保留对自己原创内容的控制和…

坐标经纬度的基本运算(2个坐标经纬度的距离、中心点坐标经纬度范围内的坐标计算)

现在的应用大都居于LBS服务&#xff0c;用户地理位置的获取&#xff08;经纬度坐标、所属行政区域&#xff09;&#xff0c;提供服务场所的地理位置也有行政区域信息和坐标信息。 用户与服务场所的联系&#xff0c;就近服务原则的设计&#xff0c;服务场所相对于用户的排序。 …

linux磁盘管理实验1

1.在安装好的linux系统中新加一块硬盘&#xff0c;将硬盘分成2个主分区&#xff0c;和2个逻辑分区&#xff0c;将其中一个逻辑分区设置成vfat&#xff08;FAT32&#xff09;分区&#xff0c;并实现开机自动挂载所有分区。 答&#xff1a;添加一个硬盘为sdb 分成2个主分区&#…

华焰天下隆重推出华火智能电燃灶产品,引领绿色科技新潮流!

近日&#xff0c;以“慧聚英雄南昌&#xff0c;论道策划科技——畅展华焰未来&#xff0c;迈向财富新时代”为主题的华火新能源产品发布会于江西南昌盛大举办。 各级领导、全国各地的企业家、家电行业优秀从业者、新能源应用领域专家、策划行业名人大咖及广大媒体朋友莅临活动…

OAI openair3代码结构整理

openair3代码框架结构 OAI&#xff08;OpenAirInterface&#xff09;是一个开源的5G网络软件平台&#xff0c;用于研究和开发5G网络技术。OpenAir3是OAI项目中的一个子项目&#xff0c;专注于5G核心网络的功能实现。 一、OpenAir3的代码主要包括以下几个部分&#xff1a; NAS…

Halcon根据特征值选择区域select_shape

Halcon根据特征值选择区域 关于提取图像的特征&#xff0c;比较常用的一个算子是select_shape算子&#xff0c;它能高效地根据特征提取出符合条件的区域。该算子的原型如下&#xff1a; select_shape (Regions : SelectedRegions : Features, Operation, Min, Max :)参数1和参…

Python+Appium自动化测试的使用步骤

这篇文章主要介绍了PythonAppium实现自动化测试的使用步骤&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值&#xff0c;需要的朋友们下面随着小编来一起学习学习吧 一、环境准备 1.脚本语言&#xff1a;Python3.x IDE&am…

【开源项目】超经典数字孪生智慧物流园

数字孪生物流园管理系统&#xff0c;具有仓储管理智能化、运输管理自动化、物流管理系统化、共享服务平台化等特点。飞渡科技基于数字孪生、物联网IOT、人工智能等新一代信息技术&#xff0c;以智能设备为基底&#xff0c;通过人、物、资源、系统等多方数据的传递和交互&#x…

任务调度实现

一、定时任务概述 在项目中开发定时任务应该一种比较常见的需求&#xff0c;在 Java 中开发定时任务主要有三种解决方案&#xff1a;一是使用JDK 自带的 Timer&#xff0c;二是使用 Spring Task&#xff0c;三是使用第三方组件 Quartz Timer 是 JDK 自带的定时任务工具,其简单易…

python 3.6 + robotFramework自动化框架 环境搭建、学习笔记

一、环境搭建 概览&#xff1a;win 7 python 3.6 pycharm robotframework IntelliBot fireFox 1.安装相关的库 推荐使用pip安装&#xff0c;如 pip install robotframework(以及selenium2library) 研发环境没外网&#xff0c;采用离线安装&#xff0c;down包后解压--进入…