当前位置: 首页 > news >正文

1253. 重构 2 行二进制矩阵

1253. 重构 2 行二进制矩阵

给你一个 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:vector<vector<int>> reconstructMatrix(int upper, int lower, vector<int>& colsum) {int n=colsum.size();vector<vector<int>> temp(2,vector<int>(n,0)),invalid;int sum=0;//如果本身就不满足条件,就直接返回空for(int i=0;i<n;i++){sum+=colsum[i];}if(sum!=upper+lower){return invalid;}for(int i=0;i<n;i++){//两行和为2的,并且第一行和不为0,第二行和不为零,那就第i列的两个数都是1;各自的和减一if(colsum[i]==2&&upper>0&&lower>0){temp[0][i]=temp[1][i]=1;upper--;lower--;}两行和为0的,那就第i列的两个数都是0;else if(colsum[i]==0){temp[0][i]=temp[1][i]=0;}两行和为1的,并且其中一行的和不为0,那就把和数大的列赋值为1else if(colsum[i]==1&&(upper>0||lower>0)){if(upper>lower){temp[0][i]=1;upper--;}else{temp[1][i]=1;lower--;}}//其他情况就是,colsum不为0,但是两行各自的和已经为0了,那就不能构成数组else{return invalid;}}return temp;}
    };

http://www.lryc.cn/news/96070.html

相关文章:

  • 安全—01day
  • 【Git】Please commit your changes or stash them before you merge的解决方法
  • 网卡收发包系统结构收发包流程,tcp/ip协议,socket套接字缓冲区,滑动窗口,mtu/mss
  • VUE之axios使用,跨域问题,拦截器添加Token
  • 阿里云函数计算签名认证(iOS实现细节备注)
  • 成都爱尔蔡裕:泡在“糖”里的脆弱血管,暴露在眼睛深处
  • 神经网络小记-过拟合与欠拟合
  • 外贸行业企业邮箱选择:安全好用的邮箱服务
  • flutter开发实战-RepaintBoundary实现Widget截图功能
  • vue中路由懒加载的写法
  • 【Spring MVC】小文件上传的多种方法
  • UE5.1移动端PreintegratedSkinBxDF解析
  • WebSocket心跳机制(笔记大全)
  • Spring Boot日志:SLF4J和Logback
  • [C++] C++入门第二篇 -- 引用 -- 内联函数inline -- auto+for
  • Latex | 将MATLAB图并导入Latex中的方法
  • JSON格式Python,Java,PHP等封装根据关键词搜索获取淘宝商品列表数据API
  • MySQL MHA高可用配置及故障切换
  • PHP8知识详解:PHP8开发工具VS Code的安装
  • Sui Move与标准Move的有哪些区别和根本性创新
  • 构建自己的ChatGPT:从零开始构建个性化语言模型
  • 【react】react18的学习(十二)– 底层原理(二)之 迭代器 iterator
  • 一遍过JavaSE基础知识
  • 【云原生】Kubernetes之ConfigMap
  • 8.python设计模式【组合模式】
  • tkinter制作任意图形窗口
  • 视频监控综合管理平台EasyCVR多分屏默认播放协议的配置优化
  • 2023杭电多校第三场 1012.Noblesse Code
  • ubuntu qt 环境变量配置
  • 按照Vue写WPF(0):功能实现