From 61a586e96a839328ea25feabb0fcf2aa838d77f1 Mon Sep 17 00:00:00 2001 From: zhufenggood Date: Thu, 2 Sep 2021 17:46:17 +0800 Subject: [PATCH 1/3] Update solution 0494. Considering new edge test case. --- leetcode/0494.Target-Sum/494. Target Sum.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/leetcode/0494.Target-Sum/494. Target Sum.go b/leetcode/0494.Target-Sum/494. Target Sum.go index b9fac40c..80415232 100644 --- a/leetcode/0494.Target-Sum/494. Target Sum.go +++ b/leetcode/0494.Target-Sum/494. Target Sum.go @@ -6,7 +6,7 @@ func findTargetSumWays(nums []int, S int) int { for _, n := range nums { total += n } - if S > total || (S+total)%2 == 1 { + if S > total || (S+total)%2 == 1 || S+total < 0 { return 0 } target := (S + total) / 2 From e89003a2e360f0fac0e92cf98d9059939e202496 Mon Sep 17 00:00:00 2001 From: zhufenggood Date: Thu, 2 Sep 2021 18:01:03 +0800 Subject: [PATCH 2/3] Update solution 0494. Considering new edge test case. --- leetcode/0494.Target-Sum/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/leetcode/0494.Target-Sum/README.md b/leetcode/0494.Target-Sum/README.md index 04db09b7..069b6b21 100644 --- a/leetcode/0494.Target-Sum/README.md +++ b/leetcode/0494.Target-Sum/README.md @@ -63,7 +63,7 @@ func findTargetSumWays(nums []int, S int) int { for _, n := range nums { total += n } - if S > total || (S+total)%2 == 1 { + if S > total || (S+total)%2 == 1 || S+total < 0 { return 0 } target := (S + total) / 2 From a3f55d9560b7f6f8a0f61ad4e836c659338cde91 Mon Sep 17 00:00:00 2001 From: zhufenggood Date: Fri, 3 Sep 2021 16:46:46 +0800 Subject: [PATCH 3/3] Update solution 0494. Considering new edge test case. --- leetcode/0494.Target-Sum/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/leetcode/0494.Target-Sum/README.md b/leetcode/0494.Target-Sum/README.md index 069b6b21..94234e7b 100644 --- a/leetcode/0494.Target-Sum/README.md +++ b/leetcode/0494.Target-Sum/README.md @@ -52,7 +52,7 @@ There are 5 ways to assign symbols to make the sum of nums be target 3. 等号两边都加上 `sum(N) + sum(P)`,于是可以得到结果 `2 * sum(P) = target + sum(nums)`,那么这道题就转换成了,能否在数组中找到这样一个集合,和等于 `(target + sum(nums)) / 2`。那么这题就转化为了第 416 题了。`dp[i]` 中存储的是能使和为 `i` 的方法个数。 -- 如果和不是偶数,即不能被 2 整除,那说明找不到满足题目要求的解了,直接输出 0 。 +- 如果和不是偶数,即不能被 2 整除,或者和是负数,那说明找不到满足题目要求的解了,直接输出 0 。 ## 代码