LeetCode474

    技术2022-07-31  66

    public class Solution { private int[] calcZeroAndOne(String str) { int[] res = new int[2]; for (char c : str.toCharArray()) { res[c - '0']++; } return res; } public int findMaxForm(String[] strs, int m, int n) { int[][] dp = new int[m + 1][n + 1]; dp[0][0] = 0; for (String s : strs) { int[] zeroAndOne = calcZeroAndOne(s); int zeros = zeroAndOne[0]; int ones = zeroAndOne[1]; for (int i = m; i >= zeros; i--) { for (int j = n; j >= ones; j--) { dp[i][j] = Math.max(dp[i][j], dp[i - zeros][j - ones] + 1); } } } return dp[m][n]; } }

     

    Processed: 0.008, SQL: 9