leetcode-494. Target Sum
来源:互联网 发布:jquery定义json对象 编辑:程序博客网 时间:2024/05/20 20:47
考察dp,DFS;
思路:DFS简单,但是时间耗费多;DP算法中,dp[i][j]表示的是前i个数表示总数j的所有可能。运用数组下标映射算法。
C++代码:
DFS:
class Solution {public: int ret; int findTargetSumWays(vector<int>& nums, int S) { ret = 0; int len = nums.size(); if (len == 0) return ret; dfs(nums, 0, 0, S); return ret; } void dfs(vector<int> &nums, int cur, int sum, int target) { if (cur == nums.size()) { if (sum == target) { ret++; return; } else { return; } } dfs(nums, cur+1, sum+nums[cur], target); dfs(nums, cur+1, sum-nums[cur], target); }};
DP:
//DPclass Solution {public: int dp[21][2002]; int findTargetSumWays(vector<int>& nums, int S) { memset(dp, 0, sizeof(dp)); int len = nums.size(); int sum = 0; for (int i : nums) sum+=i; dp[0][1000] = 1; if (S<(-sum) || S>sum) return 0; for (int i=1; i<=len; i++) { for (int j = 1000-sum; j<=1000 + sum; j++) { if (dp[i-1][j] != 0) { //cout<<dp[i-1][j]<<" j="<<j<<" i="<<i<<endl; dp[i][j - nums[i-1]] += dp[i-1][j]; dp[i][j + nums[i-1]] += dp[i-1][j]; } } } return dp[len][S+1000]; }};
0 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
- java中String、StringBuffer、StringBuilder的区别
- Eclipse常用快捷键
- jQuery取消事件冒泡
- 缓冲区溢出实验
- 有未经处理的异常: 0xC00000FD: Stack overflow
- leetcode-494. Target Sum
- 如何下载JDK(JAVADOC/DOCLET)源码source code(MAC OS)
- 《Centos下部署ThinkPHP》
- getContextPath、getServletPath、getRequestURI的区别
- 常见网络协议报头格式
- plt.contour 与 plt.contourf
- FreeRTOS系列第19篇---FreeRTOS信号量
- luogu 3.0 Markdown
- web安全工程师-概念基础-BT5安装