diff --git a/problems/0474.一和零.md b/problems/0474.一和零.md index e3b05704..5544c3c9 100644 --- a/problems/0474.一和零.md +++ b/problems/0474.一和零.md @@ -248,6 +248,53 @@ func max(a,b int) int { return b } ``` +> 传统背包,三维数组法 +```golang +func findMaxForm(strs []string, m int, n int) int { + //dp的第一个index代表项目的多少,第二个代表的是背包的容量 + //所以本处项目的多少是len(strs),容量为m和n + dp:=make([][][]int,len(strs)+1) + for i:=0;i<=len(strs);i++{ + //初始化背包容量 + strDp:=make([][]int,m+1) + for j:=0;j=zero&&j>=one{ + dp[k][i][j]=getMax(dp[k-1][i][j],dp[k-1][i-zero][j-one]+1) + } + } + } + } + return dp[len(strs)][m][n] +} +func getMax(a,b int)int{ + if a>b{ + return a + } + return b +} +``` Javascript: ```javascript