解:
class Solution {private int[] cnt(String str) {int[] cnt = new int[2];for(char c : str.toCharArray()) {if(c == '0') {cnt[0] ++;} else {cnt[1]++;}}return cnt;}public int findMaxForm(String[] strs, int m, int n) {int len = strs.length;int[][] f = new int[m+1][n+1];for(int i = 0; i < len; i++) {int[] ret = cnt(strs[i]);for(int j=m; j>=ret[0]; j--) {for(int k=n; k>=ret[1]; k--) {f[j][k] = Math.max(f[j][k], f[j-ret[0]][k-ret[1]]+1);}}}return f[m][n];}}
