给你一个整数数组 nums 和一个整数 target 。

向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :

例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。
返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。

示例 1:

输入:nums = [1,1,1,1,1], target = 3
输出:5
解释:一共有 5 种方法让最终目标和为 3 。
-1 + 1 + 1 + 1 + 1 = 3
+1 - 1 + 1 + 1 + 1 = 3
+1 + 1 - 1 + 1 + 1 = 3
+1 + 1 + 1 - 1 + 1 = 3
+1 + 1 + 1 + 1 - 1 = 3
示例 2:

输入:nums = [1], target = 1
输出:1

解题思路

递归遍历每一个元素取正负号的结果,查找出总和为target的所有情况

代码

class Solution {public int findTargetSumWays(int[] nums, int target) {return findWays(nums,0,target);}public int findWays(int[] nums,int i,int target) {if(i==nums.length){if(target==0) return 1;return 0;}return findWays(nums, i+1, target-nums[i])+findWays(nums, i+1, target+nums[i]);}
}

leetcode 494. 目标和相关推荐

  1. LeetCode—494. 目标和(Target Sum)——分析及代码(Java)

    LeetCode-494. 目标和[Target Sum]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 (2)代码 (3)结果 2. 动态规划+节省空间 (1)思路 ...

  2. leetcode - 494. 目标和

    494. 目标和 -------------------------------------------- 给定一个非负整数数组,a1, a2, -, an, 和一个目标数,S.现在你有两个符号 + ...

  3. LeetCode 494. 目标和(DFS+DP)

    文章目录 1. 题目 2. 解题 2.1 递归 2.2 DP 1. 题目 给定一个非负整数数组,a1, a2, -, an, 和一个目标数,S.现在你有两个符号 + 和 -.对于数组中的任意一个整数, ...

  4. leetcode 494. 目标和

    目标和题解集合 记忆化搜索 动态规划 滚动数组优化 一维优化---巧妙转换为01背包问题 记忆化搜索 思路: 将问题转化为对一颗多叉树的遍历,而这里每个数字都有+与-的两种选择,因此这里是构造成二叉树 ...

  5. 96. Leetcode 494. 目标和 (动态规划-背包问题)

    步骤一.确定状态: 确定dp数组及含义 dp[i]表示的是:装满当前的容量j,有多少种装法?, 存的是方法的数量 步骤二.推断状态方程: dp[j] += dp[j-nums[i]] 步骤三.规定初始 ...

  6. LeetCode刷题复盘笔记—一文搞懂0 - 1背包之494. 目标和问题(动态规划系列第九篇)

    今日主要总结一下动态规划0-1背包的一道题目,494. 目标和问题 题目:494. 目标和 Leetcode题目地址 题目描述: 给你一个整数数组 nums 和一个整数 target . 向数组中的每 ...

  7. 【Leetcode刷题】:Python:494. 目标和

    题目 494. 目标和 代码:dp class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int ...

  8. LeetCode:1049.最后一块石头的重量II 494.目标和 474.一和零

    1049.最后一块石头的重量II 题目 有一堆石头,用整数数组 stones 表示.其中 stones[i] 表示第 i 块石头的重量. 每一回合,从中选出任意两块石头,然后将它们一起粉碎.假设石头的 ...

  9. 代码随想录刷题|LeetCode 1049. 最后一块石头的重量II 494. 目标和 474.一和零

    目录 1049. 最后一块石头的重量 II 思路 最后一块石头的重量|| 494. 目标和 思路 0.求什么 1.确定dp数组的含义 2.递推公式 3.初始化dp数组 4.遍历顺序 目标和 474.一 ...

最新文章

  1. WC2018集训 吉老师的军训练
  2. 周伯文对话斯坦福AI实验室负责人:下一个NLP前沿是什么?
  3. 实例创建流程_Activiti系列~3.流程定义
  4. 合并分支到master上
  5. Python之字符串的134个常用操作
  6. 牛客题霸 [寻找第K大] C++题解/答案
  7. python中利用opencv对图片进行缩放
  8. 百度大脑公开课:快速定制、部署高精度深度学习模型!
  9. Java 数据类型和 MySql 数据类型对应一览表
  10. oracle如何杀掉表死锁,oracle杀死死锁的方法
  11. 查看设置本机共享文件 net share
  12. ArcGIS操作小技巧(一)之属性表中显示出小数点前面的 0
  13. asBroadcastStream
  14. scara机器人dh参数表_7. 机器人正运动学—连杆坐标系与DH参数
  15. 计算机组装与维护评课稿,计算机病毒评课稿
  16. Oracle汉字排序nls_sort
  17. Rational Rose2003安装
  18. 龙果支付 mysql_开源版龙果支付系统-国内首款开源的互联网支付系统
  19. 养生粥秘方,据说可以补气、泻火和去湿
  20. 请教个问题,我想把数据中名字的重复值删掉,只保留年纪大的怎么整呢?

热门文章

  1. epoll实现高并发聊天室
  2. 二叉树后序遍历的四种方法
  3. Redis高频面试笔记:mysql8.0新特性
  4. 【性能优化实战】java验证码识别训练
  5. 腾讯3轮面试都问了Android事件分发,原理+实战+视频+源码
  6. AJAX 异步加载技术
  7. os.path 模块
  8. Objective-C模版方法(TemplateMethod)
  9. [转]带花树,Edmonds's matching algorithm,一般图最大匹配
  10. [zz]从HDFS看分布式文件系统的设计需求