英文网站中英对照,旅游门户网站模板,制作平台网站方案,深圳网站建设设计公司474. 一和零 
在计算机界中#xff0c;我们总是追求用有限的资源获取最大的收益。 
现在#xff0c;假设你分别支配着 m 个 0 和 n 个 1。另外#xff0c;还有一个仅包含 0 和 1 字符串的数组。 
你的任务是使用给定的 m 个 0 和 n 个 1 #xff0c;找到能拼出存在于数组中…474. 一和零 
在计算机界中我们总是追求用有限的资源获取最大的收益。 
现在假设你分别支配着 m 个 0 和 n 个 1。另外还有一个仅包含 0 和 1 字符串的数组。 
你的任务是使用给定的 m 个 0 和 n 个 1 找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。 
注意: 
给定 0 和 1 的数量都不会超过 100。 给定字符串数组的长度不会超过 600。 示例 1: 
输入: Array  {“10”, “0001”, “111001”, “1”, “0”}, m  5, n  3 输出: 4 
解释: 总共 4 个字符串可以通过 5 个 0 和 3 个 1 拼出即 “10”,“0001”,“1”,“0” 。 示例 2: 
输入: Array  {“10”, “0”, “1”}, m  1, n  1 输出: 2 
解释: 你可以拼出 “10”但之后就没有剩余数字了。更好的选择是拼出 “0” 和 “1” 。 
代码 
func findMaxForm(strs []string, m int, n int) int {// golang 二维数组的初始化dp : make([][]int, m  1)for i : 0; i  m; i {dp[i]  make([]int, n  1)}// 这个题我们不能从0,0开始判断外循环条件是strfor _, str : range strs {// 查询当前字符串中0和1的个数number0, number1 : getLen(str)for i : m; i  number0; i-- {for j : n; j  number1; j-- {dp[i][j]  max(dp[i][j], dp[i-number0][j-number1]  1)}}}return dp[m][n]
}func max(a, b int) int {if a  b {return a}return b
}func getLen(str string) (number0, number1 int) {for _, n : range str {if n  0 {number0} else {number1}}return number0, number1
}