474. Ones and Zeroes

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

解题算法:

  1. 状态转移方程是:newMax[zero][one] = Math.max(1 + max[zeroLeft][oneLeft], max[zero][one]); when zero >= neededZero && one >= neededOne 否则newMax[zero][one] = max[zero][one];

代码:
class Solution {
public int findMaxForm(String[] strs, int m, int n) {

    int[][] max = new int[m + 1][n + 1];
for (int i = 0; i < strs.length; i++) {
    String str = strs[i];
    
    int neededZero = 0;
    int neededOne = 0;
    for (int j = 0; j < str.length(); j++) {
        if (str.charAt(j) == '0') {
            neededZero++;
        } else {
            neededOne++;
        }
    }
    
    int[][] newMax = new int[m + 1][n + 1];
    
    for (int zero = 0; zero <= m; zero++) {
        for (int one = 0; one <= n; one++) {
            if (zero >= neededZero && one >= neededOne) {
                int zeroLeft = zero - neededZero;
                int oneLeft = one - neededOne;
                newMax[zero][one] = Math.max(1 + max[zeroLeft][oneLeft], max[zero][one]);
            } else {
                newMax[zero][one] = max[zero][one];
            }
        }
    }
    
    max = newMax;
}
    return max[m][n];
}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原题地址 https://leetcode.com/problems/ones-and-zeroes/descri...
    岛上痴汉阅读 723评论 0 0
  • In the computer world, use restricted resource you have t...
    matrxyz阅读 221评论 0 0
  • 今天rdv很不理想,我觉得老板总在压制我,或者嫌弃我懂得太少。心里有些憋。觉得以前什么好机会都是给我的,现在很多机...
    deyycx阅读 241评论 0 0
  • 是时候静下来,好好想一想了。领导现在交待的任务越来越少,我任性的活着,但是,这没方向的任性,被我活成了自我放纵!回...
    让自己清醒阅读 238评论 0 0
  • 2015.11.24。下了今年的第一场雪,成为初雪 。我在的城市是巢湖,家乡是淮北,遗憾的是错过了家乡的第一场雪,...
    易晴阅读 342评论 0 0

友情链接更多精彩内容