地址
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];
}
};