日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

将矩阵转为一行_LeetCode1253:矩阵重构

發(fā)布時(shí)間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将矩阵转为一行_LeetCode1253:矩阵重构 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

專(zhuān)注最新leetcode刷題,用自己的努力提升自己;用自己的分享,讓更多人對(duì)算法更加得心應(yīng)手。

題目描述

給定一個(gè)n列2行的矩陣,其滿(mǎn)足一下的特征:

  • 矩陣為一個(gè)二值矩陣,也就是矩陣中的每個(gè)元素要么為1要么為0;
  • 第一行的所有元素和為upper;
  • 第二行的所有元素和為lower;
  • 第i列的和為colsum[i],其中colsum是一個(gè)長(zhǎng)度n的整數(shù)數(shù)組
  • 你的任務(wù)就是利用upper、lower、cosum來(lái)重構(gòu)矩陣。

    返回:

    返回一個(gè)矩陣;如果有不止一個(gè)可能的矩陣,就返回其中任意一個(gè)矩陣;如果沒(méi)有可能的矩陣,則返回一個(gè)空的矩陣。

    問(wèn)題分析

    本題還是比較簡(jiǎn)單的,因?yàn)槠浠镜乃悸肥呛芮逦?/p>

  • 第一行的和,也就是第一行中1的個(gè)數(shù)為upper個(gè);
  • 第二行的和,也就是第二行中1的個(gè)數(shù)為lower個(gè);
  • 對(duì)于每列的和cosum[i],其只有三種可能0,1,2。當(dāng)0時(shí),則說(shuō)明第一行和第二行的第i個(gè)數(shù)字都為0;當(dāng)2時(shí),則說(shuō)明第一行和第二行的第i個(gè)數(shù)字都為1;當(dāng)為1時(shí),所有第一行和第二行的第i個(gè)數(shù)字有一個(gè)為1一個(gè)為0。
  • 通過(guò)1、2、3的分析,我們可以采用最簡(jiǎn)單的方式來(lái)處理,把colsum[i]為1的列號(hào)都記錄下來(lái),然后從前到后放入第一列中,將剩余的1都放入第二行中。當(dāng)然要滿(mǎn)足cosum[i]的和等于upper和lower的和。
  • 代碼實(shí)現(xiàn)

    class Solution {public: vector> reconstructMatrix(int upper, int lower, vector& colsum) { vector vectOneCols; vectOneCols.clear(); vector> vectRst(2,vector(colsum.size(),0)),vectRstT(0,vector(0,0)); int nTempOne =0,nTempUpper=upper,nTempLower =lower; for(int i=0;i

    總結(jié)

    以上是生活随笔為你收集整理的将矩阵转为一行_LeetCode1253:矩阵重构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。