动态规划
文章平均质量分 58
1
qq_43116644
这个作者很懒,什么都没留下…
展开
-
2021-07-25
出处:LeetCode494 题目: 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例: 输入:nums: [1, 1, 1, 1, 1], S: 3 输出:5 一共有5种方法让最终目标和为3。 思路:设正数元素和为x,那么负数元素和为sum-x。x-(sum-x)=S,那么x=(S+sum)/2。问题...原创 2021-07-25 17:52:16 · 46 阅读 · 0 评论 -
7.25 01背包(最大容量类型)
动态规划解题步骤 1.明确dp数组下标和内容含义 2.确定递推公式 3.数组初始化 4.确定地推顺序 5.验证地推公式 01背包 递推公式: dp[j] = max(dp[j], dp[j - weight[i]] + value[i]); j代表容量为j的背包最多可以放价值为dp[j]的物品。当i的重量超过j容量时,dp[j]的价值和dp[j-1]相同。当i的重量小于j的容量时,dp[j]的最大价值等于j-i的的容量+物品i的价值。 初始化: dp[0]初始化为0,因为容量为0原创 2021-07-25 17:11:39 · 178 阅读 · 0 评论