Ones and Zeroes

来源:互联网 发布:淘宝二手名表是真的吗 编辑:程序博客网 时间:2024/06/06 02:28



题目分析

1. 这题是有两个背包的背包问题变形

2. 直接在原来的背包问题上增加一维,就可以套用原有的状态转移方程解答。


题目代码

class Solution {public:int findMaxForm(vector<string>& strs, int m, int n) {vector<vector<int>> f(m + 1, vector<int>(n + 1, 0));for (int i = 0; i < strs.size(); i++) {int z = 0;int o = 0;for (auto x = strs[i].cbegin(); x != strs[i].cend(); x++)if (*x == '0') z++;else o++;for (int j = m; j >= z; j--)for (int k = n; k >= o; k--)f[j][k] = f[j][k] >= f[j - z][k - o] + 1 ? f[j][k] : f[j - z][k - o] + 1;}return f[m][n];}};


0 0
原创粉丝点击