题目:
解析:
决策树:
代码设计:
代码:
写法一:path为全局变量
javaprivate 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作为参数
javaprivate 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]); }
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>
robin_suli2025-01-03 23:37
相关推荐
艾莉丝努力练剑20 分钟前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解_殊途2 小时前
《Java HashMap底层原理全解析(源码+性能+面试)》珊瑚里的鱼5 小时前
LeetCode 692题解 | 前K个高频单词秋说6 小时前
【PTA数据结构 | C语言版】顺序队列的3个操作lifallen7 小时前
Kafka 时间轮深度解析:如何O(1)处理定时任务liupenglove7 小时前
自动驾驶数据仓库:时间片合并算法。python_tty8 小时前
排序算法(二):插入排序然我8 小时前
面试官:如何判断元素是否出现过?我:三种哈希方法任你选F_D_Z9 小时前
【EM算法】三硬币模型秋说9 小时前
【PTA数据结构 | C语言版】字符串插入操作(不限长)