代码随想录——一和零(Leetcode474)

题目链接

0-1背包

java 复制代码
class Solution {
    public int findMaxForm(String[] strs, int m, int n) {
        // 本题m,n为背包两个维度
        // dp[i][j]:最多右i个0和j个1的strs的最大子集大小
        int[][] dp = new int[m + 1][n + 1];
        // 遍历strs中字符串
        for(String str : strs){
            int num0 = 0;
            int num1 = 0;
            for(int i = 0; i < str.length(); i++){
                if(str.charAt(i) == '0'){
                    num0++;
                }
                if(str.charAt(i) == '1'){
                    num1++;
                }
            }
             for(int i = m; i >= num0; i--){
                for(int j = n; j >= num1; j--){
                    dp[i][j] = Math.max(dp[i][j], dp[i - num0][j - num1] + 1);
                }
             }
        }
        return dp[m][n];
    }
}

背包递推公式:dp[i][j] = max(dp[i][j], dp[i - num0][j - num1] + 1)

相关推荐
_UMR_29 分钟前
springboot集成Jasypt实现配置文件启动时自动解密-ENC
java·spring boot·后端
程序员小假35 分钟前
我们来说说 Cookie、Session、Token、JWT
java·后端
短剑重铸之日1 小时前
《SpringBoot4.0初识》第一篇:前瞻与思想
java·开发语言·后端·spring·springboot4.0
千金裘换酒1 小时前
LeetCode反转链表
算法·leetcode·链表
蓝色王者1 小时前
springboot 2.6.13 整合flowable6.8.1
java·spring boot·后端
Tao____1 小时前
基于Ruoyi开发的IOT物联网平台
java·网络·物联网·mqtt·网络协议
byzh_rc2 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
花哥码天下2 小时前
apifox登录后设置token到环境变量
java·后端
qq_433554542 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法