程式語言 - LeetCode - C++ - 494. Target Sum



題目:


解答:

class Solution {
public:
    int findTargetSumWays(vector<int>& nums, int target) {
        int n = nums.size();
        int ans = 0;

        auto dfs = [&](this auto&& dfs, int start, int sum) {
            if (start == nums.size()) {
                if (sum == target) {
                    ans += 1;
                }
                return;
            }

            dfs(start + 1, sum + nums[start]);
            dfs(start + 1, sum - nums[start]);
        };

        dfs(0, 0);
        return ans;
    }
};