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

474. 一和零

這篇具有很好參考價(jià)值的文章主要介紹了474. 一和零。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1、題目描述

2、思路:動(dòng)態(tài)規(guī)劃01背包

2.1、確定dp數(shù)組及下標(biāo)含義

2.2、確定遞歸數(shù)組

2.3、初始化

2.4、確定遍歷順序


1、題目描述

給你一個(gè)二進(jìn)制字符串?dāng)?shù)組 strs 和兩個(gè)整數(shù) m 和 n 。

請(qǐng)你找出并返回 strs 的最大子集的長度,該子集中 最多 有 m 個(gè) 0 和 n 個(gè) 1 。

如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。

示例 1:

輸入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3
輸出:4
解釋:最多有 5 個(gè) 0 和 3 個(gè) 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4 。
其他滿足題意但較小的子集包括 {"0001","1"} 和 {"10","1","0"} 。{"111001"} 不滿足題意,因?yàn)樗?4 個(gè) 1 ,大于 n 的值 3 。
示例 2:

輸入:strs = ["10", "0", "1"], m = 1, n = 1
輸出:2
解釋:最大的子集是 {"0", "1"} ,所以答案是 2 。
?

提示:

1 <= strs.length <= 600
1 <= strs[i].length <= 100
strs[i]?僅由?'0' 和?'1' 組成
1 <= m, n <= 100

來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/ones-and-zeroes
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

2、思路:動(dòng)態(tài)規(guī)劃01背包

根據(jù)題目描述可以知道,返回最大子集長度,子集中最多有m個(gè)0和n個(gè)1 。

其實(shí)可以理解為,每一個(gè)01字符串都代表了一個(gè)權(quán)重為j個(gè)0,k個(gè)1 的物體,而我們的背包大小也有兩個(gè)權(quán)重,一個(gè)是m一個(gè)是n。那么問題就可以翻譯為,一個(gè)權(quán)重為m|n的背包最多可以放幾個(gè)物體,而且每個(gè)物體不可以重復(fù)拿取,這樣問題便成為了01背包問題。

2.1、確定dp數(shù)組及下標(biāo)含義

dp[j][k]表示了背包大小為i j時(shí)能容納的最大子集長度。

2.2、確定遞歸數(shù)組

dp[j][k]?=?max(dp[j][k],dp[j-str[i][0]][k-str[i][1]]+1);

2.3、初始化

背包大小為0|0時(shí),因?yàn)樽址钚¢L度為1,能放的字符串為0,故初始化為0,其余的dp數(shù)組根據(jù)其他的數(shù)組得來,初始化為最小非負(fù)數(shù)0 。

2.4、確定遍歷順序

最外層單層for循環(huán)從前往后遍歷所有的物品(字符串),內(nèi)層兩個(gè)for循環(huán)從小到大遍歷背包。

、文章來源地址http://www.zghlxwxcb.cn/news/detail-436119.html

C++實(shí)現(xiàn)如下:

#include<iostream>
#include<vector>
using namespace std; 
class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        int length = strs.size();
//        int str[length][2];
        vector<vector<int> > str(length,vector<int>(2,0));
        
        for(int i = 0;i<length;++i){
            for(int j = 0;j<strs[i].size();++j){
                if(strs[i][j]=='0'){
                    str[i][0]+=1;
                }
            }
            str[i][1] = strs[i].size() - str[i][0];
        }
        vector<vector<int> > dp(m+1,vector<int>(n+1,0));
		
        for(int i = 0;i<length;++i){
            for(int j = m;j>=str[i][0];--j){
                for(int k = n;k>=str[i][1];--k){
                    dp[j][k] = max(dp[j][k],dp[j-str[i][0]][k-str[i][1]]+1);
                }
            }
        }

        return dp[m][n];
    }
};

到了這里,關(guān)于474. 一和零的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 【Day43】代碼隨想錄之動(dòng)態(tài)規(guī)劃0-1背包_1049. 最后一塊石頭的重量 II_494. 目標(biāo)和_ 474.一和零

    動(dòng)態(tài)規(guī)劃理論基礎(chǔ) 動(dòng)規(guī)五部曲: 確定dp數(shù)組 下標(biāo)及dp[i] 的含義。 遞推公式:比如斐波那契數(shù)列 dp[i] = dp[i-1] + dp[i-2]。 初始化dp數(shù)組。 確定遍歷順序:從前到后or其他。 打印。 出現(xiàn)結(jié)果不正確: 打印dp日志和自己想的一樣:遞推公式、初始化或者遍歷順序出錯(cuò)。 打印dp日志和

    2024年02月22日
    瀏覽(24)
  • 代碼隨想錄Day36 動(dòng)態(tài)規(guī)劃05 LeetCode T1049最后一塊石頭的重量II T494 目標(biāo)和 T474 一和零

    代碼隨想錄Day36 動(dòng)態(tài)規(guī)劃05 LeetCode T1049最后一塊石頭的重量II T494 目標(biāo)和 T474 一和零

    理論基礎(chǔ)? :?代碼隨想錄Day34 LeetCode T343整數(shù)拆分 T96 不同的二叉搜索樹-CSDN博客 1.明白dp數(shù)組的含義 2.明白遞推公式的含義 3.初始化dp數(shù)組 4.注意dp數(shù)組的遍歷順序 5.打印dp數(shù)組排錯(cuò) 題目鏈接:1049. 最后一塊石頭的重量 II - 力扣(LeetCode) 這題我們?nèi)匀徊捎脛?dòng)規(guī)五部曲來寫,這題和

    2024年02月06日
    瀏覽(19)
  • 算法學(xué)習(xí)——LeetCode力扣動(dòng)態(tài)規(guī)劃篇3(494. 目標(biāo)和、474. 一和零、518. 零錢兌換 II)

    算法學(xué)習(xí)——LeetCode力扣動(dòng)態(tài)規(guī)劃篇3(494. 目標(biāo)和、474. 一和零、518. 零錢兌換 II)

    494. 目標(biāo)和 - 力扣(LeetCode) 描述 給你一個(gè)非負(fù)整數(shù)數(shù)組 nums 和一個(gè)整數(shù) target 。 向數(shù)組中的每個(gè)整數(shù)前添加 ‘+’ 或 ‘-’ ,然后串聯(lián)起所有整數(shù),可以構(gòu)造一個(gè) 表達(dá)式 : 例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串聯(lián)起來得到表達(dá)式 “

    2024年04月14日
    瀏覽(70)
  • 474. 一和零

    目錄 1、題目描述 2、思路:動(dòng)態(tài)規(guī)劃01背包 2.1、確定dp數(shù)組及下標(biāo)含義 2.2、確定遞歸數(shù)組 2.3、初始化 2.4、確定遍歷順序 給你一個(gè)二進(jìn)制字符串?dāng)?shù)組 strs 和兩個(gè)整數(shù) m 和 n 。 請(qǐng)你找出并返回 strs 的最大子集的長度,該子集中 最多 有 m 個(gè) 0 和 n 個(gè) 1 。 如果 x 的所有元素也是

    2024年02月03日
    瀏覽(20)
  • Leetcode 474 一和零

    題意理解 : ????????給你一個(gè)二進(jìn)制字符串?dāng)?shù)組? strs ?和兩個(gè)整數(shù)? m ?和? n ?。 ????????請(qǐng)你找出并返回? strs ?的最大子集的長度,該子集中? 最多 ?有? m ?個(gè)? 0 ?和? n ?個(gè)? 1 ?。 ????????如果? x ?的所有元素也是? y ?的元素,集合? x ?是集合? y ?的?

    2024年01月17日
    瀏覽(19)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】474、LeetCode一和零

    【算法與數(shù)據(jù)結(jié)構(gòu)】474、LeetCode一和零

    所有的LeetCode題解索引,可以看這篇文章——【算法和數(shù)據(jù)結(jié)構(gòu)】LeetCode題解。 ?? 思路分析 :本題要找strs數(shù)組的最大子集,這個(gè)子集最多含有 m m m 個(gè)0和 n n n 個(gè)1。本題也可以抽象成一個(gè)01背包的問題。其中,strs內(nèi)的元素就是物品,而 m m m 和 n n n 就是背包的維度。 d p [

    2024年01月22日
    瀏覽(26)
  • leetcode 動(dòng)態(tài)規(guī)劃(最后一塊石頭的重量II、目標(biāo)和、一和零)

    leetcode 動(dòng)態(tài)規(guī)劃(最后一塊石頭的重量II、目標(biāo)和、一和零)

    力扣題目鏈接(opens new window) 題目難度:中等 有一堆石頭,每塊石頭的重量都是正整數(shù)。 每一回合,從中選出任意兩塊石頭,然后將它們一起粉碎。假設(shè)石頭的重量分別為 x 和 y,且 x = y。那么粉碎的可能結(jié)果如下: 如果 x == y,那么兩塊石頭都會(huì)被完全粉碎; 如果 x != y,那

    2024年02月03日
    瀏覽(30)
  • day43 | 1049. 最后一塊石頭的重量 II、494. 目標(biāo)和、474.一和零

    目錄: 1049. 最后一塊石頭的重量 II 有一堆石頭,用整數(shù)數(shù)組? stones ?表示。其中? stones[i] ?表示第? i ?塊石頭的重量。 每一回合,從中選出 任意兩塊石頭 ,然后將它們一起粉碎。假設(shè)石頭的重量分別為? x ?和? y ,且? x = y 。那么粉碎的可能結(jié)果如下: 如果? x == y ,那

    2024年02月12日
    瀏覽(25)
  • Day43|leetcode 1049.最后一塊石頭的重量II、494.目標(biāo)和、474.一和零

    Day43|leetcode 1049.最后一塊石頭的重量II、494.目標(biāo)和、474.一和零

    題目鏈接:1049. 最后一塊石頭的重量 II - 力扣(LeetCode) 視頻鏈接:動(dòng)態(tài)規(guī)劃之背包問題,這個(gè)背包最多能裝多少?LeetCode:1049.最后一塊石頭的重量II_嗶哩嗶哩_bilibili 有一堆石頭,每塊石頭的重量都是正整數(shù)。 每一回合,從中選出任意兩塊石頭,然后將它們一起粉碎。假設(shè)

    2024年02月10日
    瀏覽(30)
  • 算法訓(xùn)練第四十三天|1049. 最后一塊石頭的重量 II 、494. 目標(biāo)和、474.一和零

    算法訓(xùn)練第四十三天|1049. 最后一塊石頭的重量 II 、494. 目標(biāo)和、474.一和零

    題目鏈接:1049. 最后一塊石頭的重量 II 參考:https://programmercarl.com/1049.%E6%9C%80%E5%90%8E%E4%B8%80%E5%9D%97%E7%9F%B3%E5%A4%B4%E7%9A%84%E9%87%8D%E9%87%8FII.html 題目難度:中等 有一堆石頭,每塊石頭的重量都是正整數(shù)。 每一回合,從中選出任意兩塊石頭,然后將它們一起粉碎。假設(shè)石頭的重量分

    2023年04月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包