首页 > 其他分享 >力扣---1253. 重构 2 行二进制矩阵

力扣---1253. 重构 2 行二进制矩阵

时间:2023-06-29 09:57:38浏览次数:32  
标签:力扣 lower upper int res two --- 1253 colsum

给你一个 2 行 n 列的二进制数组:

  • 矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1
  • 第 0 行的元素之和为 upper
  • 第 1 行的元素之和为 lower
  • 第 i 列(从 0 开始编号)的元素之和为 colsum[i]colsum 是一个长度为 n 的整数数组。

你需要利用 upperlower 和 colsum 来重构这个矩阵,并以二维整数数组的形式返回它。

如果有多个不同的答案,那么任意一个都可以通过本题。

如果不存在符合要求的答案,就请返回一个空的二维数组。

 

示例 1:

输入:upper = 2, lower = 1, colsum = [1,1,1]
输出:[[1,1,0],[0,0,1]]
解释:[[1,0,1],[0,1,0]] 和 [[0,1,1],[1,0,0]] 也是正确答案。

示例 2:

输入:upper = 2, lower = 3, colsum = [2,2,1,1]
输出:[]

示例 3:

输入:upper = 5, lower = 5, colsum = [2,1,2,0,1,0,1,2,0,1]
输出:[[1,1,1,0,1,0,0,1,0,0],[1,0,1,0,0,0,1,1,0,1]]

 

提示:

  • 1 <= colsum.length <= 10^5
  • 0 <= upper, lower <= colsum.length
  • 0 <= colsum[i] <= 2

 

贪心模拟即可。

class Solution {
    public List<List<Integer>> reconstructMatrix (int upper, int lower, int[] colsum) {
        int sum = 0, two = 0;
        for (int num : colsum) {
            if (num == 2) {
                ++two;
            }
            sum += num;
        }
        if (sum != upper + lower || Math.min(upper, lower) < two) {
            return new ArrayList<List<Integer>>();
        }
        upper -= two;
        lower -= two;
        int len = colsum.length;
        Integer[][] res = new Integer[2][len];
        for (int i = 0; i < len; i++) {
            if (colsum[i] == 1) {
                if (upper > lower) {
                    res[0][i] = 1;
                    res[1][i] = 0;
                    upper--;
                } else {
                    res[1][i] = 1;
                    res[0][i] = 0;
                    lower--;
                }
            } else if (colsum[i] == 2) {
                res[0][i] = 1;
                res[1][i] = 1;
                upper--;
                lower--;
            } else {
                res[0][i] = 0;
                res[1][i] = 0;
            }
        }
        return new ArrayList<>() {{
            add(new ArrayList<>(Arrays.asList(res[0])));
            add(new ArrayList<>(Arrays.asList(res[1])));
        }};
    }
}

 

标签:力扣,lower,upper,int,res,two,---,1253,colsum
From: https://www.cnblogs.com/allWu/p/17513230.html

相关文章

  • 22.箱体内腔容积技术-相交(仅限于零件体可用)
    1.零件模式下,有3个部件(上下油口),需要将箭头所指3个口封起来2.草图-将两个圆转化为实体引用,进入曲面-选择平面区域命令--  3.油口不用草图转换实体引用,直接使用填充曲面命令,选择内环面的线即可  4.选择特征下的相交命令5.全部选中6.选择创建内部区域,点击相交,打......
  • SSO2.0 17-20230628
                 ......
  • 21.sw拉伸之--成型到实体
    1.首先有一个密闭开盖腔体2.在密闭开盖腔体上表面画一个比开口大的矩形3.选择拉伸-成型到实体(选择刚刚的大矩形拉伸)4.形成密闭实心腔体-5.效果展示2  ......
  • virt-sysprep基本使用
    virt-clone命令可以复制一个已经存在的虚拟机,这个命令只能在vm停机状态使用,它将克隆已存在VM的所有信息,包括UUID和MAC地址。可以使用virt-sysprep工具来配置新克隆的VM。virt-sysperp初始化虚拟机实例。virt-sysperp会将虚假机初始化到系统刚安装的状态,它会删除掉虚拟机中的sshk......
  • 关于CIFS-Common Internet File System-通用Internet文件系统
    服务器消息块(SMB)协议是一种网络文件共享协议,在MicrosoftWindows中实现的称为MicrosoftSMB协议。定义特定版本的协议的消息数据包集称为方言。通用Internet文件系统(CIFS)协议是SMB的方言。VMS、Unix的多个版本和其他操作系统上也提供SMB和CIFS。 CIFS是......
  • LLM-Client一个轻量级的LLM集成工具
    大型语言模型(llm)已经彻底改变了我们与文本交互的方式,OpenAI、Google、AI21、HuggingfaceHub、Anthropic和众多开源模型提供了不同的功能和优势。但是每个模型都有其独特的体系结构、api和兼容性需求,集成这些模型是一项耗时且具有挑战性的任务。所以这时候LangChain就解决了这个......
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-1】 - 配置管理-Kestrel【含https启用
    前言:继上篇:Taurus.NetCore微服务开源框架:Admin插件【3】-指标统计管理本篇继续介绍下一个内容:1、系统配置节点:App- Config 界面界面图如下:双击节点即可进入修改模式,如: 修改说明: 不勾选持久化,该配置当前生效,下次重次失效,修改后配置值旁边带有【temp】说明文......
  • linux把文件压缩成.tar.gz的命令&各个压缩解压命令大全--九五小庞
    针对LINUX中解压和压缩的命令,一直以来使用都模糊不清,今天在此进行整理01-.tar格式解包:[*******]$tarxvfFileName.tar打包:[*******]$tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$gunzipFileName.gz解压2:[*******]$gzip-dFileName.gz压缩:[*******]$gzipFileName03-......
  • 【后端面经-Java】AQS详解
    目录1.AQS是什么?2.AQS核心思想2.1基本框架2.1.1资源state2.1.2CLH双向队列2.2AQS模板3.源码分析3.1acquire(int)3.1.1tryAcquire(int)3.1.2addWaiter(Node.EXCLUSIVE)3.1.3acquireQueued(Nodenode,intarg)3.2release(int)3.2.1tryRelease(int)3.2.2unparkSuccess......
  • 题目集6-8的总结性Blog
    一、前言第6-8次的pta没有延续之前的菜单计价程序,主要是围绕课程成绩统计程序进行的。第六次大作业就是成绩统计程序,第七次大作业则增加了对HashMap和多态的一个考察,第八次大作业则是增加了对Arraylist部分知识点的考察。这三次作业不再是菜单的设计,而是改为学生成绩的统计,但还是......