Ones and Zeroes 问题及解法
来源:互联网 发布:tcl网络电视如何看直播 编辑:程序博客网 时间:2024/06/08 13:59
问题描述:
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 most once.
Note:
- The given numbers of
0s
and1s
will both not exceed100
- The size of given string array won't exceed
600
.
示例:
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”
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".
问题分析:
我们定义一种状态转移数组dp[i][j],表示i个0和j个1最多能组成几个字串,那么其转移过程就是dp[i][j] = max(dp[i][j], dp[i - zero][j - one] + 1);其中zero和one是当前字串中0
和1的个数。
过程详见代码:
class Solution {public: int findMaxForm(vector<string>& strs, int m, int n) {vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));for (auto s : strs){int zero = 0,one = 0;for (char ch : s){if (ch == '0') zero++;else one++;}for (int i = m; i >= zero; i--){for (int j = n; j >= one; j--){dp[i][j] = max(dp[i][j], dp[i - zero][j - one] + 1);}}}return dp[m][n];}};
阅读全文
0 0
- Ones and Zeroes 问题及解法
- LeetCode 474. Ones and Zeroes 动态规划解法+拓展
- Move Zeroes问题及解法
- 474. Ones and Zeroes
- LeetCode: Ones and Zeroes
- Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- [LeetCode] Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 474. Ones and Zeroes
- 1085. Perfect Sequence (25)
- Ubuntu上安装wine进行apt-get update时遇到的问题
- vim 插件 (安装 and 用法)
- Android使用ShareSDK实现微信第三方登录中要获取unionid的方法
- java应用MongoDB简单操作
- Ones and Zeroes 问题及解法
- LightOJ 1094 Farthest Nodes in a Tree(dfs)
- getopt、getopt_long和getopt_long_only
- C# 钉钉api接口开发(三) 免登录及自动刷新AccessToken
- 求平均数的几种方法
- ElasticSearch基础
- BZOJ1827 [Usaco2010 Mar]gather 奶牛大集会
- Uiautomator的基础对象
- Android图片加载库的封装实战