代码随想录——一和零(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)

相关推荐
Lyyaoo.1 小时前
【JAVA基础面经】CAS 与 ABA
java·开发语言
励志的小陈1 小时前
数据结构--堆(C语言实现)
android·c语言·数据结构
AC赳赳老秦1 小时前
OpenClaw对接百度指数:关键词热度分析,精准定位博客创作方向
java·python·算法·百度·dubbo·deepseek·openclaw
AIHR数智引擎2 小时前
AI时代,德鲁克依然是答案——只是问题变了
大数据·人工智能·学习·职场和发展·机器人·求职招聘
551只玄猫2 小时前
Why Financial Data Cannot Be Modeled with “Standard Machine Learning”
算法·机器学习·数学建模·金融·数据科学·英文·金融建模
小雅痞2 小时前
[Java][Leetcode middle] 274. H 指数
java·算法·leetcode
晚晚不晚2 小时前
分页查询后端实现
java
talen_hx2962 小时前
emqx的Keep alive
java·笔记·学习
huanmieyaoseng10032 小时前
Mybatis常见面试题
java·开发语言·mybatis
你撅嘴真丑2 小时前
a 进制转 b 进制(2~16)
算法