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

news2025/6/9 5:13:02

文章目录

  • Tag
  • 题目来源
  • 解题思路
    • 方法一:二进制枚举
  • 写在最后

Tag

【二进制枚举】【矩阵】【2024-01-04】


题目来源

2397. 被列覆盖的最多行数


解题思路

方法一:二进制枚举

思路

使用二进制枚举所有选中列的集合,对于集合中的每一个二进制数,从低位到高位,第 i 位为 1 则表示第 i 列被选择,否则表示第 i 列没有被选择。

同时使用一个二进制数组 mask 来记录矩阵每一行的 0 1 元素。

接着遍历每一个选择了 numSelect 个列的子集,在每一个子集下计算矩阵的所有行中 符合条件 的最大列数。符合条件指的是矩阵的当前行中元素值为 1 对应的列一定要被选,即满足 (subSet & row) == rowrow 表示矩阵当前行元素的二进制表示,subSet 表示选择了 numSelect 个列的子集。

算法

class Solution {
public:
    int maximumRows(vector<vector<int>>& matrix, int numSelect) {
        int m = matrix.size(), n = matrix[0].size();
        vector<int> mask(m);
        for (int i = 0; i < m; ++i) {
            for (int j = 0; j < n; ++j) {
                mask[i] |= matrix[i][j] << j;
            }
        }

        int res = 0;
        for (int subSet = 0; subSet < (1 << n); ++subSet) { // 遍历所有子集
            if (__builtin_popcount(subSet) == numSelect) {  // 选择了 numSelect 列的子集
                int rowCovered = 0;
                for (int row : mask) {                      // 遍历矩阵的所有行
                    if ((row & subSet) == row) {            // 矩阵所有元素值为 1 的列一定要被选
                        ++rowCovered;
                    }
                }
                res = max(res, rowCovered);
            }
        }
        return res;
    }
};

复杂度分析

时间复杂度: O ( m × 2 n ) O(m \times 2^n) O(m×2n) m m m n n n 分别为矩阵的行数和列数。

空间复杂度: O ( m ) O(m) O(m)


写在最后

如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度的方法,欢迎评论区交流。

最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理-总线标准(系统总线 局部总线 设备总线)

文章目录 总览例子总线标准的基本概念系统总线标准局部总线标准设备总线标准对比小结为何串行总线取代并行总线 总览 例子 总线标准的基本概念 北桥芯片速度大于南桥芯片 系统总线标准 ISA和EISA都是并行总线 Intel提出了FBS总线标准比EISA和ISA快&#xff0c;后来又提出来…

好用免费的WAF---如何安装雷池社区版

什么是雷池​ 雷池&#xff08;SafeLine&#xff09;是长亭科技耗时近 10 年倾情打造的 WAF&#xff0c;核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步。 什么是 WAF​ WAF 是 Web Application Firewall 的缩写&#xff0c;也被称为 Web 应用防火墙。 …

virtualbox新建Ubuntu虚拟机

1、下载virtualbox 2、下载Ubuntu镜像 https://ubuntu.com/blog/desktop virtualbox安装好后&#xff0c;点击新建 选择linux类型 选择内存2~4G都行 选择先不添加虚拟硬盘 创建硬盘&#xff0c;管理点击虚拟介质管理 点击创建&#xff0c;选择创建类型为vmdk&#xff0…

31、杭州电子科技大、深圳大数据研究院、港中文第二附属医院提出:SCUNet++,堪称完美的缝合设计[太美丽家人们!]

本文由1杭州电子科技大学&#xff0c;2深圳大数据研究院&#xff0c;3香港中文大学第二附属医院于2023年12月22日发表于arXiv<Electrical Engineering and Systems Science >。 论文&#xff1a; 《SCUNet: Assessment of Pulmonary Embolism CT Image Segmentation Le…

计算机毕业设计------企业ERP报销管理系统

项目介绍 本项目分为前台和后台&#xff0c;用户有员工和管理员 员工主要功能有注册登录、查看公告、申请报销、个人信息修改等&#xff1b; 管理员主要功能登录登出、个人中心管理、员工管理、部门管理、报销种类管理、报销信息管理、系统管理等。 环境需要 1.运行环境&…

CMake入门教程【核心篇】查找包(find_package)

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「本文的内容」&#xff1a;CMake入门教程 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1.使用方法1.1基本用…

【计算机毕业设计】SSM健身房俱乐部管理系统

项目介绍 本项目包含前后台&#xff0c;分为普通用户与管理员两种角色&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 登录,会员管理-增删改查,员工管理-增删改查,课程管理,网站新闻管理,新闻添加编辑,留言管…

计算机毕业设计-----SSM在线个人PC电脑商城平台网站系统

项目介绍 该项目为前后台项目&#xff0c;分为普通用户与管理员两种角色&#xff0c;前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,用户管理,一级分类管理,二级分类管理,商品管理,所有订单管理,留言管理,公告管理…

2024年游泳耳机最新排行榜,口碑最好的游泳耳机推荐!

作为一位热爱水上运动的发烧友&#xff0c;我深深地了解到一款优质的游泳耳机对于提升游泳的重要性。今天&#xff0c;我想要分享几款我自己使用过并强烈推荐的游泳耳机&#xff0c;希望它们能在你的水下冒险中带来无尽的乐趣。 以下就是我为大家推荐的几款2024年最新且口碑最…

【SpringBoot】Java MVC 集成 Swagger 生成 API 文档

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网: https://swagger.io/ Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。 <dependency><groupId>com.github.xiaoymin</groupI…

基于PHP的花店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的花店管理系统 一 介绍 此花店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 …

兴趣消费引领品牌出海潮:定制、社交、文化的新时代

随着全球化的推进和互联网的普及&#xff0c;品牌出海已经成为越来越多企业的战略选择。然而&#xff0c;随之而来的是各种市场差异和文化差异&#xff0c;如何在异国他乡成功打造品牌&#xff0c;成为企业面临的一项巨大挑战。在这个过程中&#xff0c;兴趣消费逐渐成为引领品…

【计算机算法设计与分析】n皇后问题(C++_回溯法)

文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在nxn格的棋盘上放置彼此不受攻击的n格皇后。按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nxn格的棋盘上放置n个皇后&#xff0c;任何2个皇后不放在同…

char 和 varChar 的区别是什么?

大家好&#xff0c;我是伯约&#xff0c;这篇对大家有帮助的话求一个赞&#xff0c;另外文章末尾放了我从月入7k到现在3W的学习资料&#xff0c;大家可以去领一下&#xff08;无偿&#xff09;。 CHAR 和 VARCHAR 是最常用到的字符串类型&#xff0c;两者的主要区别在于&#x…

区域HIS系统源码,二级医院、专科医院his系统源码,经扩展后能够应用于医联体/医共体

二级医院、专科医院his系统源码&#xff0c;java语言开发 基于云计算技术的B/S架构的HIS系统&#xff0c;为医疗机构提供标准化的、信息化的、可共享的医疗信息管理系统&#xff0c;实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。 系统利用云计算平台的技术优…

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频,详细介绍了 Oracle 代码生成

Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频&#xff0c;详细介绍了 Oracle 代码生成 Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版三及其介绍视频。详细介绍了 Oracle 代码生成。即生成后端数据库为 Oracle 的 golang web 代码。并同时生…

Flask入门教程

Flask入门教程 简介 Flask是由Armin ronacher于2010年用Python语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。 特点 Flask只提供核心功能&#xff0c;其他几乎所有的功能都需要用到拓展&#xff0c;比如可以通过Flask-SQLAlchemy拓展对数据库进行操作等等。 核心 由…

vue3 require is not defined

前言&#xff1a;我想在vue3项目的页面引入图片总是不成功&#xff0c;最后看到说是Vite在作祟&#xff0c;让我来瞧瞧&#xff0c;是怎么回事咧。 看看官方文档怎么说Vite官网地址 主要是 new URL(url, import.meta.url) import.meta.url 是一个 ESM 的原生功能&#xff0c;…

redis 三主六从高可用dockerswarm高级版(不固定ip)

redis集群(cluster)笔记 redis 三主三从高可用集群docker swarm redis 三主六从高可用docker(不固定ip) redis 三主六从高可用dockerswarm高级版(不固定ip) 此博客解决&#xff0c;redis加入集群后&#xff0c;是用于停掉后重启&#xff0c;将nodes.conf中的旧的Ip替换为新的…

[C#]使用onnxruntime部署yolov8-onnx实例分割模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…