Add to List 474. Ones and Zeroes(第十五周)
来源:互联网 发布:东北电力大学 知乎 编辑:程序博客网 时间:2024/06/08 18:10
Description:
In the computer world, use restricted resource you have to generate maximum benefit is what we always want to pursue.
For now, suppose you are a dominator of m 0s
and n 1s
respectively. On the other hand, there is an array with strings consisting of only 0s
and 1s
.
Now your task is to find the maximum number of strings that you can form with given m 0s
and n 1s
. Each 0
and 1
can be used at mostonce.
Note:
- The given numbers of
0s
and1s
will both not exceed100
- The size of given string array won't exceed
600
.
Example 1:
Input: Array = {"10", "0001", "111001", "1", "0"}, m = 5, n = 3Output: 4Explanation: This are totally 4 strings can be formed by the using of 5 0s and 3 1s, which are “10,”0001”,”1”,”0”
Example 2:
Input: Array = {"10", "0", "1"}, m = 1, n = 1Output: 2Explanation: You could form "10", but then you'd have nothing left. Better form "0" and "1".
解题思路:
这是背包一类问题,从后往前更新,才能得到答案。
#include <iostream>#include <vector>#include <cstring>using namespace std;class Solution {public: int findMaxForm(vector<string>& strs, int m, int n) { int size = strs.size(); int dp[m+1][n+1]; memset(dp,0,sizeof(dp)); // int countNum[size][2]; for(int i = 0; i < size; i++) { int count0 = 0, count1 = 0; for(int j = 0; j < strs[i].size(); j++) { if(strs[i][j] == '0') count0++; if(strs[i][j] == '1') count1++;}//countNum[i][0] = count0;//countNum[j][1] = count1;for(int j = m; j >= count0; j--){for(int k = n; k >= count1; k--){dp[j][k] = max(dp[j][k], dp[j-count0][k-count1]+1);}}}return dp[m][n]; }};
阅读全文
0 0
- Add to List 474. Ones and Zeroes(第十五周)
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- book_effective Python_59个有效办法(三)
- OSI模型和TCP模型
- 两个例子,搞懂原码,反码,补码
- 在Linux中创建静态库和动态库范例 (hello.c)
- MyFlag Step10:后台代码解耦与客户端具体功能设计
- Add to List 474. Ones and Zeroes(第十五周)
- Hibernate对象状态及方法详解
- Studio中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'原因和解决
- Php编程中最容易出现的错误有哪些?
- 深入理解AJAX系列第一篇--XMLHttpRequest对象
- 创建复选框按钮
- windows ——————SVN搭建
- 条件运算符和条件表达式
- os功能