mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
更新目录
This commit is contained in:
@ -1,8 +1,6 @@
|
||||
package leetcode
|
||||
|
||||
import "fmt"
|
||||
|
||||
func canPartition_(nums []int) bool {
|
||||
func canPartition(nums []int) bool {
|
||||
sum := 0
|
||||
for _, v := range nums {
|
||||
sum += v
|
||||
@ -10,41 +8,15 @@ func canPartition_(nums []int) bool {
|
||||
if sum%2 != 0 {
|
||||
return false
|
||||
}
|
||||
// C = half sum
|
||||
n, C, dp := len(nums), sum/2, make([]bool, sum/2+1)
|
||||
for i := 0; i <= C; i++ {
|
||||
dp[i] = (nums[0] == i)
|
||||
}
|
||||
fmt.Printf("dp = %v\n", dp)
|
||||
for i := 1; i < n; i++ {
|
||||
for j := C; j >= nums[i]; j-- {
|
||||
fmt.Printf("**dp = %v j = %v nums[i] = %v i = %v j-nums[i] = %v\n", dp, j, nums[i], i, j-nums[i])
|
||||
dp[j] = dp[j] || dp[j-nums[i]]
|
||||
}
|
||||
}
|
||||
return dp[C]
|
||||
}
|
||||
|
||||
func canPartition(nums []int) bool {
|
||||
|
||||
sum := 0
|
||||
for _, v := range nums {
|
||||
sum += v
|
||||
}
|
||||
|
||||
if sum&1 == 1 {
|
||||
return false
|
||||
}
|
||||
|
||||
half := sum / 2
|
||||
|
||||
dp := make([]bool, half+1)
|
||||
dp[0] = true
|
||||
fmt.Printf("dp = %v\n", dp)
|
||||
for _, v := range nums {
|
||||
for j := half; j >= v; j-- {
|
||||
dp[j] = dp[j] || dp[j-v]
|
||||
}
|
||||
}
|
||||
fmt.Printf("*****dp = %v\n", dp)
|
||||
return dp[half]
|
||||
}
|
||||
|
Reference in New Issue
Block a user