mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
bug-fix 0494.目标和.md Go版本
This commit is contained in:
@ -289,7 +289,7 @@ func findTargetSumWays(nums []int, target int) int {
|
|||||||
for _, v := range nums {
|
for _, v := range nums {
|
||||||
sum += v
|
sum += v
|
||||||
}
|
}
|
||||||
if target > sum {
|
if abs(target) > sum {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
if (sum+target)%2 == 1 {
|
if (sum+target)%2 == 1 {
|
||||||
@ -311,49 +311,12 @@ func findTargetSumWays(nums []int, target int) int {
|
|||||||
}
|
}
|
||||||
return dp[bag]
|
return dp[bag]
|
||||||
}
|
}
|
||||||
```
|
|
||||||
> 更新版,上一个跑不通了,因为会存在bag 小于0的情况
|
|
||||||
|
|
||||||
```go
|
func abs(x int) int {
|
||||||
func findTargetSumWays(nums []int, target int) int {
|
return int(math.Abs(float64(x)))
|
||||||
//先转化为数学问题
|
|
||||||
//a-b=target
|
|
||||||
//a+b=sum
|
|
||||||
//a=(target+sum)/2
|
|
||||||
//求出sum
|
|
||||||
var sum int
|
|
||||||
for _,value:=range nums{
|
|
||||||
sum+=value
|
|
||||||
}
|
|
||||||
//如果sum<target或者 sum+target不是偶数(因为a是int) 或者两者之和小于0了
|
|
||||||
if sum<target||(sum+target)%2==1||(sum+target)<0{
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
//开始dp初始化
|
|
||||||
dp:=make([][]int,len(nums)+1)
|
|
||||||
for i:=0;i<=len(nums);i++{
|
|
||||||
tmp:=make([]int,(target+sum)/2+1)//背包容量
|
|
||||||
dp[i]=tmp
|
|
||||||
}
|
|
||||||
dp[0][0]=1//当背包容量为0,且物品为0时,填满背包就1种方法
|
|
||||||
for i:=0;i<len(nums)+1;i++{
|
|
||||||
if i==0{
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
for j:=0;j<(target+sum)/2+1;j++{
|
|
||||||
if nums[i-1]<=j{//如果背包装的下
|
|
||||||
dp[i][j]=dp[i-1][j]+dp[i-1][j-nums[i-1]]
|
|
||||||
}else{
|
|
||||||
dp[i][j]=dp[i-1][j]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return dp[len(nums)][(target+sum)/2]
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Javascript:
|
Javascript:
|
||||||
```javascript
|
```javascript
|
||||||
const findTargetSumWays = (nums, target) => {
|
const findTargetSumWays = (nums, target) => {
|
||||||
|
Reference in New Issue
Block a user