✨今日算法一题
文章目录
目标和
题目描述
思路详解
本题我们采用 dfs 思想。
数据范围只有 20,而且每个数据只有 +/-+/− 两种选择,因此可以直接使用 DFS 进行「爆搜」。
代码与结果
class Solution { public int findTargetSumWays(int[] nums, int t) { return dfs(nums, t, 0, 0); } int dfs(int[] nums, int t, int u, int cur) { if (u == nums.length) { return cur == t ? 1 : 0; } int left = dfs(nums, t, u + 1, cur + nums[u]); int right = dfs(nums, t, u + 1, cur - nums[u]); return left + right; } }
✨总结
本题简单的使用了 dfs 的思想,算法本身并不复杂,复杂的是我们如何把问题进行抽象化,选取合理的算法进行解题。这个的过程只有我们多解多练才可以熟悉,和我一起每天练习吧。加油!!!