穷举vs暴搜vs深搜vs回溯vs剪枝系列一>

题目:


解析:

决策树:


代码设计:


代码:

写法一:path为全局变量

java 复制代码
private int ret,path,aim;
    public int findTargetSumWays(int[] nums, int target) {
        aim = target;
        dfs(nums,0);
        return ret;
    }
    
    private void dfs(int[] nums, int pos){
        if(pos == nums.length){
            if(path == aim) ret++;
            return;
        } 

        //添加 '+'
        path += nums[pos];
        dfs(nums,pos+1);
        path -= nums[pos];//回溯

        //添加 '-'
        path -= nums[pos];
        dfs(nums,pos+1); 
        path += nums[pos];//回溯
    }

写法二:path作为参数

java 复制代码
private int ret,aim;
    public int findTargetSumWays(int[] nums, int target) {
        aim = target;
        dfs(nums,0,0);
        return ret;
    }
    
    private void dfs(int[] nums, int pos,int path){
        if(pos == nums.length){
            if(path == aim) ret++;
            return;
        }

        //添加 '+'
        dfs(nums, pos+1, path + nums[pos]);

        //添加 '-'
        dfs(nums, pos+1, path - nums[pos]); 
    }
相关推荐
这就是编程25 分钟前
自回归模型的新浪潮?GPT-4o图像生成技术解析与未来展望
人工智能·算法·机器学习·数据挖掘·回归
羑悻的小杀马特28 分钟前
【狂热算法篇】探寻图论幽径:Bellman - Ford 算法的浪漫征程(通俗易懂版)
c++·算法·图论·bellman_ford算法
Fantasydg4 小时前
DAY 31 leetcode 142--链表.环形链表
算法·leetcode·链表
basketball6164 小时前
C++ STL常用算法之常用排序算法
c++·算法·排序算法
qystca4 小时前
蓝桥云客 岛屿个数
算法·dfs·bfs
什码情况5 小时前
回文时间 - 携程机试真题题解
数据结构·python·算法·华为od·机试
lwewan6 小时前
26考研——栈、队列和数组_数组和特殊矩阵(3)
数据结构·笔记·考研·算法
拾零吖7 小时前
枚举算法-day2
数据结构·算法·leetcode
已经成为了代码的形状7 小时前
关于交换并查集内元素的一些题的做法
数据结构·算法
电科_银尘8 小时前
【Matlab】-- 基于MATLAB的美赛常用多种算法
算法·数学建模·matlab