Java详解如何通过动态规划解决一和零的组合问题
1、编写一个工具函数,获取一个由 0 和 1 组成的串中数字 0 和 1 的个数。

2、基于动态规划的思想,实现算裹选法:
1. 定义一个动态规划数组 dp, 这是一个二维数组诉斤块,dp[i][j] 表示 i 个 0 和 j 个 1 能拼接的最大字符串的个数;
2. 对于第 k 个字符串,假设其包含 a 个 0 以及 b 个 1, 则可以有如下公闲拒式:
dp[i][j] = max( 1+dp[i-a][j-b] , dp[i][j] ),其中 i>=a, j>=b;
3. 遍历所有字符串,最后 dp[m][n] 即最后的解。

3、编写本地测试主方法。

4、运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。

5、平台提交算法,测试通过。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。