二维费用的背包问题 Leetcode 474一和零

地址

https://leetcode-cn.com/problems/ones-and-zeroes/

描述

在这里插入图片描述

思想

二位费用背包问题见题解:
DP算法提高课:二维
在这里插入图片描述

代码

class Solution {
    
    
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
    
    
        vector<vector<int>> f(m+1,vector<int>(n+1));
        int len=strs.size();
        for(int i=0;i<len;i++){
    
    
            //计算当前字符串中0,1的数目
            string s=strs[i];
            int a=0,b=0;
            for(int i=0;i<s.length();i++){
    
    
                if(s[i]=='0') a++;
                else b++;
            }
            for(int j=m;j>=a;j--){
    
    
                for(int k=n;k>=b;k--){
    
    
                    f[j][k]=max(f[j][k],f[j-a][k-b]+1);
                }
            }
        }
        return f[m][n];
    }
};

猜你喜欢

转载自blog.csdn.net/qq_52934831/article/details/121783493
今日推荐