From c6f9405c056e148cdc0b772ba9a7ae4c0f4f2d75 Mon Sep 17 00:00:00 2001 From: Mohammed Muzakkir Fazal <56503557+mdmzfzl@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:42:04 +0300 Subject: [PATCH] Create 0494-target-sum.c --- c/0494-target-sum.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 c/0494-target-sum.c diff --git a/c/0494-target-sum.c b/c/0494-target-sum.c new file mode 100644 index 000000000..72897087c --- /dev/null +++ b/c/0494-target-sum.c @@ -0,0 +1,29 @@ +int findTargetSumWays(int* nums, int numsSize, int target) { + int sum = 0; + for (int i = 0; i < numsSize; i++) { + sum += nums[i]; + } + if (target > sum || target < -sum) { + return 0; + } + + int n = numsSize; + int dp[n + 1][2 * sum + 1]; + for (int i = 0; i <= n; i++) { + for (int j = 0; j <= 2 * sum; j++) { + dp[i][j] = 0; + } + } + dp[0][sum] = 1; + + for (int i = 0; i < n; i++) { + for (int j = nums[i]; j <= 2 * sum - nums[i]; j++) { + if (dp[i][j]) { + dp[i + 1][j + nums[i]] += dp[i][j]; + dp[i + 1][j - nums[i]] += dp[i][j]; + } + } + } + + return dp[n][sum + target]; +}