穷举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]); 
    }
相关推荐
jazz_bin1 小时前
人工智能安全——大语言模型遗忘学习(LLM unlearning)与多目标优化算法
人工智能·算法·语言模型·unlearning·多目标优化·人工智能安全
生信碱移1 小时前
使用大语言模型的生物嵌入,后续应该会有很多类似文章出来!
人工智能·算法·语言模型·自然语言处理·chatgpt·数据分析
高 朗3 小时前
【算法刷题】链表
数据结构·算法·链表
2401_858286114 小时前
L27.【LeetCode笔记】2 的幂(五种解法)
c语言·开发语言·笔记·算法·leetcode
chenziang14 小时前
leetcode hot 100 不同路径
算法·leetcode·职场和发展
走在考研路上4 小时前
力扣459 重复的字符串
数据结构·算法·leetcode
❦丿多像灬笑话、℡4 小时前
leetcode热题100(763. 划分字母区间) c++
c++·算法·leetcode
Smark.4 小时前
(leetcode算法题)384. 打乱数组 398. 随机数索引
算法·leetcode
破-风4 小时前
leetcode-----mysql
算法·leetcode·职场和发展
Komorebi_awa4 小时前
xdoj-字符串-556,为什么字符不能被正常读入
c语言·数据结构·算法