代码随想录:474. 一和零

474. 一和零

二维费用背包问题

cpp 复制代码
class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        int l = strs.size();
        int dp[110][110] = {0};
        //dp[i][j]表示有i个0,j个1的子集长度
        for (int i = 0; i < l; i++) {
            //遍历字符数组
            int one = 0, zero = 0;
            int len = strs[i].size();
            for (int j = 0; j < len; j++) {
                if (strs[i][j] == '1')
                    one++;
                else
                    zero++;
            }
            //算第i个字符串有多少0,多少1
            for (int j = m; j >= zero; j--)
                for (int k = n; k >= one; k--)
                    dp[j][k] = max(dp[j][k], dp[j - zero][k - one] + 1);
                    //更新dp数组,要么维持前一个字符串的结果,要么取该字符串
        }
        return dp[m][n];
    }
};
相关推荐
Learner__Q14 小时前
每天五分钟:leetcode动态规划-递归与递推_day2
算法·深度优先
代码游侠14 小时前
学习笔记——Linux内核链表
linux·运维·笔记·学习·算法·链表
sheeta199814 小时前
LeetCode 每日一题笔记 日期:2025.12.14 题目:2147.分隔长廊的方案数
linux·笔记·leetcode
发疯幼稚鬼14 小时前
插入排序与冒泡排序
c语言·数据结构·算法·排序算法
小年糕是糕手14 小时前
【C++同步练习】内存管理
开发语言·jvm·数据结构·c++·程序人生·算法·改行学it
蒙奇D索大14 小时前
【数据结构】考研408|从B树到B+树:多路平衡的优化形态与数据库索引基石
数据结构·笔记·b树·学习·考研
不会代码的小猴14 小时前
C++的第十五天笔记
数据结构·c++·笔记
灵感__idea14 小时前
Hello 算法:以“快”著称的哈希
前端·javascript·算法
ACERT33314 小时前
05-矩阵理论复习第五章 向量与矩阵范数
python·算法·矩阵
前端小白在前进16 小时前
⭐力扣刷题:螺旋矩阵
算法·leetcode·矩阵