474. 一和零(中等)
class Solution {
public int findMaxForm(String[] strs, int m, int n) {
int len = strs.length;
int dp[][][] = new int[len+1][m+1][n+1];
for(int i=1;i<=len;i++){
String cur = strs[i-1];
int zero = (int)cur.chars().filter(s->s=='0').count();
int one = cur.length()-zero;
for(int j=0;j<=m;j++){
for(int k=0;k<=n;k++){
dp[i][j][k] = dp[i-1][j][k];
if(j>=zero && k >=one)
dp[i][j][k] = Math.max(dp[i][j][k],dp[i-1][j-zero][k-one]+1);
}
}
}
return dp[len][m][n];
}
}