diff --git a/problems/0474.一和零.md b/problems/0474.一和零.md index 45a0a270..213a2aa2 100644 --- a/problems/0474.一和零.md +++ b/problems/0474.一和零.md @@ -59,7 +59,7 @@ 但本题其实是01背包问题! -这不过这个背包有两个维度,一个是m 一个是n,而不同长度的字符串就是不同大小的待装物品。 +只不过这个背包有两个维度,一个是m 一个是n,而不同长度的字符串就是不同大小的待装物品。 开始动规五部曲: @@ -114,7 +114,7 @@ for (string str : strs) { // 遍历物品 有同学可能想,那个遍历背包容量的两层for循环先后循序有没有什么讲究? -没讲究,都是物品重量的一个维度,先遍历那个都行! +没讲究,都是物品重量的一个维度,先遍历哪个都行! 5. 举例推导dp数组 @@ -152,7 +152,7 @@ public: ## 总结 -不少同学刷过这道提,可能没有总结这究竟是什么背包。 +不少同学刷过这道题,可能没有总结这究竟是什么背包。 此时我们讲解了0-1背包的多种应用, @@ -252,53 +252,6 @@ 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