回溯算法:目标和

public class _494目标和_hot {
    int result = 0;

    public int findTargetSumWays(int[] nums, int target) {

        // todo 进行回溯,类似于全排列
        backtrack(0, target, 0, nums);

        return result;
    }

    private void backtrack(int cur, int target, int level, int[] nums) {
        if (level == nums.length) {   // todo 这里要注意!!, 一定要结束位置,结束终止条件为level == nums.length, 只有到这个位置,再判定是否等于target
            if (cur == target) {
                result++;
            }
            return;
        }

        backtrack(cur + nums[level], target, level + 1, nums);
        backtrack(cur - nums[level], target, level + 1, nums);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值