From 6cdf24179e932d3d2dbc38a2a06f2891a4e7481a Mon Sep 17 00:00:00 2001 From: X-shuffle <53906918+X-shuffle@users.noreply.github.com> Date: Wed, 15 Sep 2021 10:20:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200474.=E4=B8=80?= =?UTF-8?q?=E5=92=8C=E9=9B=B6=20=20=EF=BC=88=E4=B8=89=E7=BB=B4=E6=95=B0?= =?UTF-8?q?=E7=BB=84=EF=BC=8C=E5=8A=A8=E6=80=81=E8=A7=84=E5=88=92=EF=BC=8C?= =?UTF-8?q?=E5=A5=BD=E7=90=86=E8=A7=A3=EF=BC=89Go=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 0474.一和零 (三维数组,动态规划,好理解)Go语言版本 --- problems/0474.一和零.md | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) 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 From cf4cc04fda9ebfcd143bbfff329ba2d33302b257 Mon Sep 17 00:00:00 2001 From: X-shuffle <53906918+X-shuffle@users.noreply.github.com> Date: Wed, 15 Sep 2021 11:20:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200494.=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E5=92=8C=EF=BC=88=E6=9B=B4=E6=96=B0=E7=89=88=EF=BC=8C?= =?UTF-8?q?=E4=B8=8A=E4=B8=80=E4=B8=AA=E8=B7=91=E4=B8=8D=E9=80=9A=E4=BA=86?= =?UTF-8?q?=EF=BC=8C=E5=9B=A0=E4=B8=BA=E4=BC=9A=E5=AD=98=E5=9C=A8len?= =?UTF-8?q?=E5=B0=8F=E4=BA=8E0=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=89Go?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 0494.目标和(更新版,上一个跑不通了,因为会存在len小于0的情况)Go语言版本 --- problems/0494.目标和.md | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/problems/0494.目标和.md b/problems/0494.目标和.md index 4993bede..95b49d43 100644 --- a/problems/0494.目标和.md +++ b/problems/0494.目标和.md @@ -314,6 +314,47 @@ func findTargetSumWays(nums []int, target int) int { return dp[bag] } ``` +> 更新版,上一个跑不通了,因为会存在len小于0的情况 + +```go +func findTargetSumWays(nums []int, target int) int { + //先转化为数学问题 + //a-b=target + //a+b=sum + //a=(target+sum)/2 + //求出sum + var sum int + for _,value:=range nums{ + sum+=value + } + //如果sum Date: Wed, 15 Sep 2021 11:21:26 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Update=200494.=E7=9B=AE=E6=A0=87=E5=92=8C.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0494.目标和.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/0494.目标和.md b/problems/0494.目标和.md index 95b49d43..20f9dea1 100644 --- a/problems/0494.目标和.md +++ b/problems/0494.目标和.md @@ -314,7 +314,7 @@ func findTargetSumWays(nums []int, target int) int { return dp[bag] } ``` -> 更新版,上一个跑不通了,因为会存在len小于0的情况 +> 更新版,上一个跑不通了,因为会存在bag 小于0的情况 ```go func findTargetSumWays(nums []int, target int) int {