mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Merge pull request #312 from zhangzw001/master
添加0494.目标和 and 1049.最后一块石头的重量II Go版本
This commit is contained in:
@ -276,7 +276,35 @@ class Solution:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
```go
|
||||||
|
func findTargetSumWays(nums []int, target int) int {
|
||||||
|
sum := 0
|
||||||
|
for _, v := range nums {
|
||||||
|
sum += v
|
||||||
|
}
|
||||||
|
if target > sum {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
if (sum+target)%2 == 1 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
// 计算背包大小
|
||||||
|
bag := (sum + target) / 2
|
||||||
|
// 定义dp数组
|
||||||
|
dp := make([]int, bag+1)
|
||||||
|
// 初始化
|
||||||
|
dp[0] = 1
|
||||||
|
// 遍历顺序
|
||||||
|
for i := 0; i < len(nums); i++ {
|
||||||
|
for j := bag; j >= nums[i]; j-- {
|
||||||
|
//推导公式
|
||||||
|
dp[j] += dp[j-nums[i]]
|
||||||
|
//fmt.Println(dp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dp[bag]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -191,7 +191,33 @@ class Solution:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
```go
|
||||||
|
func lastStoneWeightII(stones []int) int {
|
||||||
|
// 15001 = 30 * 1000 /2 +1
|
||||||
|
dp := make([]int, 15001)
|
||||||
|
// 求target
|
||||||
|
sum := 0
|
||||||
|
for _, v := range stones {
|
||||||
|
sum += v
|
||||||
|
}
|
||||||
|
target := sum / 2
|
||||||
|
// 遍历顺序
|
||||||
|
for i := 0; i < len(stones); i++ {
|
||||||
|
for j := target; j >= stones[i]; j-- {
|
||||||
|
// 推导公式
|
||||||
|
dp[j] = max(dp[j], dp[j-stones[i]]+stones[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum - 2 * dp[target]
|
||||||
|
}
|
||||||
|
|
||||||
|
func max(a, b int) int {
|
||||||
|
if a > b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user