国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【每日一題】1253. 重構(gòu) 2 行二進(jìn)制矩陣

這篇具有很好參考價(jià)值的文章主要介紹了【每日一題】1253. 重構(gòu) 2 行二進(jìn)制矩陣。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1253. 重構(gòu) 2 行二進(jìn)制矩陣

題目描述

給你一個(gè) 2 行 n 列的二進(jìn)制數(shù)組:

矩陣是一個(gè)二進(jìn)制矩陣,這意味著矩陣中的每個(gè)元素不是 0 就是 1。
第 0 行的元素之和為 upper。
第 1 行的元素之和為 lower。
第 i 列(從 0 開(kāi)始編號(hào))的元素之和為 colsum[i],colsum 是一個(gè)長(zhǎng)度為 n 的整數(shù)數(shù)組。
你需要利用 upper,lower 和 colsum 來(lái)重構(gòu)這個(gè)矩陣,并以二維整數(shù)數(shù)組的形式返回它。

如果有多個(gè)不同的答案,那么任意一個(gè)都可以通過(guò)本題。

如果不存在符合要求的答案,就請(qǐng)返回一個(gè)空的二維數(shù)組。

示例 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

解題思路

思路:貪心算法。構(gòu)造一個(gè)2行n列的二維矩陣,其元素均初始化為0。遍歷colsum數(shù)組:如果當(dāng)前數(shù)組元素為2,則表明上下兩行元素均為1;如果當(dāng)前數(shù)組元素為0,則表明上下兩行元素均為0;如果當(dāng)前數(shù)組元素為1,則表明上下兩行中有一個(gè)為1有一個(gè)為0,此時(shí)我們選擇upper和lower中較大的那個(gè)賦值為1而剩余一個(gè)賦值為0。

vector<vector<int>> reconstructMatrix(int upper, int lower, vector<int>& colsum) 
{
   int n=colsum.size();
   vector<vector<int>> ans(2,vector<int>(n,0));
   for(int i=0;i<n;i++)
   {
      if(colsum[i]==2)
      {
         ans[0][i]=1;
         ans[1][i]=1;
         upper--;
         lower--;
      }
      else if(colsum[i]==1)
      {
         if(upper>lower)
         {
            upper--;
            ans[0][i]=1;
         }
         else
         {
            lower--;
            ans[1][i]=1;
         }
       }
       if(upper<0||lower<0)
         break;
    }
    return upper||lower?vector<vector<int>>():ans;
}

總結(jié):如果當(dāng)前數(shù)組元素為1,則表明上下兩行中有一個(gè)為1有一個(gè)為0,此時(shí)我們選擇upper和lower中較大的那個(gè)賦值為1而剩余一個(gè)賦值為0,這樣能夠最大限度內(nèi)避免upper或者lower不夠用的情況。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-526560.html

到了這里,關(guān)于【每日一題】1253. 重構(gòu) 2 行二進(jìn)制矩陣的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【算法】Reconstruct a 2-Row Binary Matrix 重構(gòu) 2 行二進(jìn)制矩陣

    給你一個(gè) 2 行 n 列的二進(jìn)制數(shù)組: 矩陣是一個(gè)二進(jìn)制矩陣,這意味著矩陣中的每個(gè)元素不是 0 就是 1。 第 0 行的元素之和為 upper。 第 1 行的元素之和為 lower。 第 i 列(從 0 開(kāi)始編號(hào))的元素之和為 colsum[i],colsum 是一個(gè)長(zhǎng)度為 n 的整數(shù)數(shù)組。 你需要利用 upper,lower 和 colsu

    2024年02月12日
    瀏覽(29)
  • 【LeetCode】每日一題 - 負(fù)二進(jìn)制轉(zhuǎn)化

    負(fù)二進(jìn)制轉(zhuǎn)換 給你一個(gè)整數(shù)? n ?,以二進(jìn)制字符串的形式返回該整數(shù)的? 負(fù)二進(jìn)制( base -2 ) 表示。 注意, 除非字符串就是? \\\"0\\\" ,否則返回的字符串中不能含有前導(dǎo)零。 示例 1: 示例 2: 示例 3: 提示: 0 = n = 109 思路:將一個(gè)十進(jìn)制的數(shù) n 轉(zhuǎn)化為任意 x 進(jìn)制都可以使用

    2024年04月29日
    瀏覽(88)
  • ?LeetCode解法匯總253. 重構(gòu) 2 行二進(jìn)制矩陣

    https://github.com/September26/java-algorithms 給你一個(gè)? 2 ?行? n ?列的二進(jìn)制數(shù)組: 矩陣是一個(gè)二進(jìn)制矩陣,這意味著矩陣中的每個(gè)元素不是? 0 ?就是? 1 。 第? 0 ?行的元素之和為? upper 。 第? 1 ?行的元素之和為? lower 。 第? i ?列(從? 0 ?開(kāi)始編號(hào))的元素之和為? colsum[i] ,

    2024年02月11日
    瀏覽(22)
  • ( 位運(yùn)算 ) 190. 顛倒二進(jìn)制位 ——【Leetcode每日一題】

    ( 位運(yùn)算 ) 190. 顛倒二進(jìn)制位 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 顛倒給定的 32 位無(wú)符號(hào)整數(shù)的二進(jìn)制位。 提示: 請(qǐng)注意,在某些語(yǔ)言(如 Java )中,沒(méi)有無(wú)符號(hào)整數(shù)類型。在這種情況下,輸入和輸出都將被指定為有符號(hào)整數(shù)類型,并且不應(yīng)影響您的實(shí)現(xiàn),因?yàn)闊o(wú)論整數(shù)是有符號(hào)的還是無(wú)符號(hào)的,其內(nèi)部的二進(jìn)制表示形式都是

    2024年02月03日
    瀏覽(92)
  • 【LeetCode - 每日一題】1073. 負(fù)二進(jìn)制數(shù)相加 (2023.05.18)

    基數(shù)為 -2 。 實(shí)現(xiàn)兩個(gè) 0/1 數(shù)組串的加法。 這是一道模擬題。 設(shè) arr1[i] 和 arr2[i] 是數(shù)組 arr1 和 arr2 從低到高的第 i 位數(shù)。 首先回顧普通的二進(jìn)制數(shù)的相加,從低位開(kāi)始計(jì)算,在計(jì)算的同時(shí)維護(hù)用一個(gè)變量 carry 維護(hù)進(jìn)位信息,因此,對(duì)于第 i 位的結(jié)果 ans[i] = arr1[i] + arr2[i] + c

    2024年02月05日
    瀏覽(18)
  • C語(yǔ)言每日一題之整數(shù)求二進(jìn)制1的個(gè)數(shù)

    C語(yǔ)言每日一題之整數(shù)求二進(jìn)制1的個(gè)數(shù)

    今天分享一道題目,用三種方法來(lái)求解 二進(jìn)制1的個(gè)數(shù) 方法1 我們的十進(jìn)制除10和取余數(shù)就可以得到我們每一位的數(shù)字,那我們的二進(jìn)制也可 以 這是一種方法,另外一種就是我們可以用移位操作符來(lái)算 這個(gè)方法是不是也是特別妙呢,當(dāng)然還有更妙的方法,請(qǐng)看?。?! 相信看

    2024年02月15日
    瀏覽(90)
  • (位運(yùn)算) 1356. 根據(jù)數(shù)字二進(jìn)制下 1 的數(shù)目排序 ——【Leetcode每日一題】

    (位運(yùn)算) 1356. 根據(jù)數(shù)字二進(jìn)制下 1 的數(shù)目排序 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 給你一個(gè)整數(shù)數(shù)組 arr 。請(qǐng)你將數(shù)組中的元素按照其二進(jìn)制表示中數(shù)字 1 的數(shù)目升序排序。 如果存在多個(gè)數(shù)字二進(jìn)制中 1 的數(shù)目相同,則必須將它們按照數(shù)值大小升序排列。 請(qǐng)你返回排序后的數(shù)組。 示例 1: 輸入 :arr = [0,1,2,3,4,5,6,7,8] 輸出 :[0,1,2,4,8,3,5,6,7] 解釋

    2024年02月12日
    瀏覽(89)
  • 2023-06-14 LeetCode每日一題(二進(jìn)制字符串前綴一致的次數(shù))

    點(diǎn)擊跳轉(zhuǎn)到題目位置 給你一個(gè)長(zhǎng)度為 n 、下標(biāo)從 1 開(kāi)始的二進(jìn)制字符串,所有位最開(kāi)始都是 0 。我們會(huì)按步翻轉(zhuǎn)該二進(jìn)制字符串的所有位(即,將 0 變?yōu)?1)。 給你一個(gè)下標(biāo)從 1 開(kāi)始的整數(shù)數(shù)組 flips ,其中 flips[i] 表示對(duì)應(yīng)下標(biāo) i 的位將會(huì)在第 i 步翻轉(zhuǎn)。 二進(jìn)制字符串 前綴

    2024年02月08日
    瀏覽(98)
  • C語(yǔ)言每日一題(5):求兩個(gè)數(shù)二進(jìn)制中不同位的個(gè)數(shù)

    C語(yǔ)言每日一題(5):求兩個(gè)數(shù)二進(jìn)制中不同位的個(gè)數(shù)

    文章主題:求兩個(gè)數(shù)二進(jìn)制中不同位的個(gè)數(shù)?? 所屬專欄: C語(yǔ)言每日一題 ?? 作者簡(jiǎn)介:每天不定時(shí)更新C語(yǔ)言的小白一枚,記錄分享自己每天的所思所想???? 個(gè)人主頁(yè): [?]的個(gè)人主頁(yè) ???? 最近剛學(xué)位操作符以及二進(jìn)制碼的相關(guān)知識(shí),于是想出了求兩個(gè)數(shù)二進(jìn)制中不同

    2024年02月07日
    瀏覽(848)
  • 改進(jìn)二進(jìn)制粒子群算法在配電網(wǎng)重構(gòu)中的應(yīng)用(Matlab實(shí)現(xiàn))【論文復(fù)現(xiàn)】

    改進(jìn)二進(jìn)制粒子群算法在配電網(wǎng)重構(gòu)中的應(yīng)用(Matlab實(shí)現(xiàn))【論文復(fù)現(xiàn)】

    目錄 ?? 0 概述 1 配電網(wǎng)重構(gòu)的目標(biāo)函數(shù) 2 算例 3 matlab代碼實(shí)現(xiàn) 配電系統(tǒng)中存在大量的分段開(kāi)關(guān)和聯(lián)絡(luò)開(kāi)關(guān),配電網(wǎng)重構(gòu)正是通過(guò)調(diào)整分段開(kāi)關(guān)和聯(lián)絡(luò)升大的組合狀態(tài)來(lái)變換網(wǎng)絡(luò)結(jié)構(gòu),用于優(yōu)化配電網(wǎng)某些指標(biāo),使其達(dá)到最優(yōu)狀態(tài)。正常運(yùn)行時(shí),則通過(guò)兩類開(kāi)關(guān)的不同組合狀態(tài)

    2024年02月15日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包