[LeetCode] 494. Target Sum
来源:互联网 发布:数据库备份与恢复目的 编辑:程序博客网 时间:2024/06/04 23:27
Problem:
You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 symbols +
and -
. For each integer, you should choose one from +
and -
as its new symbol.
Find out how many ways to assign symbols to make sum of integers equal to target S.
Example 1:
Input: nums is [1, 1, 1, 1, 1], S is 3. Output: 5Explanation: -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 = 3There are 5 ways to assign symbols to make the sum of nums be target 3.
Note:
- The length of the given array is positive and will not exceed 20.
- The sum of elements in the given array will not exceed 1000.
- Your output answer is guaranteed to be fitted in a 32-bit integer.
Solution:
class Solution {public: int findTargetSumWays(vector<int>& nums, int S) { int sum = accumulate(nums.begin(), nums.end(), 0); if (sum < S || (sum + S) % 2 != 0) return 0; return dpFindTargetSumWays(nums, (sum+S)/2); } int dpFindTargetSumWays(vector<int>& nums, int n) { int dp[n + 1] = {0}; dp[0] = 1; for (auto num : nums) { for (int i = n; i >= num; i--) { dp[i] += dp[i-num]; } } return dp[n]; }};本题应用动态编程思想解,这个解参考了discuss中一位大神的解,问题的转化十分巧妙。
具体的分析参考:https://discuss.leetcode.com/topic/76243/java-15-ms-c-3-ms-o-ns-iterative-dp-solution-using-subset-sum-with-explanation?page=1
阅读全文
1 0
- LeetCode 494. Target Sum
- [LeetCode]494. Target Sum
- [leetcode]494. Target Sum
- Leetcode 494. Target Sum
- Leetcode-494. Target Sum
- Leetcode 494. Target Sum
- leetcode-494. Target Sum
- leetcode:494. Target Sum
- (LeetCode) 494. Target Sum
- LeetCode 494. Target Sum
- leetcode 494. Target Sum
- LeetCode 494. Target Sum
- LeetCode 494. Target Sum
- LeetCode 494. Target Sum
- [leetcode] 494. Target Sum
- [LeetCode] 494. Target Sum
- LeetCode笔记:494. Target Sum
- LeetCode题目:494. Target Sum
- lucene的原理
- leetcode 665. Non-decreasing Array
- 天池大赛o2o优惠券第一名代码笔记之_xgb
- 由一个关系拟合拓展的
- 语句小结
- [LeetCode] 494. Target Sum
- 程序员:你为什么要离职?
- ALLPlayer(全能视频播放器)官方正式版V7.6下载 | allplayer官网下载
- 解决android studio中9-Patch问题
- svn使用
- Android Go 功能与新特性
- js绘制中国地图
- Kotlin之常用操作符
- JavaScript设计模式系列二:单例模式