当前位置: 首页> 教育> 就业 > 房天下fangcom_广告制作简介_镇江seo_常见的营销方式有哪些

房天下fangcom_广告制作简介_镇江seo_常见的营销方式有哪些

时间:2025/7/13 14:36:59来源:https://blog.csdn.net/visitorcsdn/article/details/145560021 浏览次数:0次
房天下fangcom_广告制作简介_镇江seo_常见的营销方式有哪些

完全背包,动态规划例题。

题目

这题跟完全背包跟完全平方数有点相似。在完全平方数中,用一个dp数组去取得目标金额的每一步的最优,当前状态可能来自上一个dp,也有可能比上一个dp更小,因此往回退一步加一做比较。在完全背包中,遍历到的物品是放还是不放使得收益大。

public class Solution {public int coinChange(int[] coins, int amount) {int max = amount + 1;int[] dp = new int[amount + 1];Arrays.fill(dp, max);dp[0] = 0;//未达到amountfor (int i = 1; i <= amount; i++) {for (int j = 0; j < coins.length; j++) {if (coins[j] <= i) {dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1);}}}return dp[amount] > amount ? -1 : dp[amount];//状态未转移,amount达不到,返回-1}
}

当然,从背包上看,也可以先进行遍历物品,再遍历体积,会减少一些执行次数。

时间复杂度:O(Sn),空间复杂度:O(S)。S为amount。

public class Solution {public int coinChange(int[] coins, int amount) {int max = amount + 1;int[] dp = new int[amount + 1];Arrays.fill(dp, max);dp[0] = 0;for (int coin : coins) {for (int j = coin; j <= amount; j++) {dp[j] = Math.min(dp[j], dp[j - coin] + 1);}}return dp[amount] > amount ? -1 : dp[amount];}
}

动态规划还是要找准状态值及状态转移方程,注意dp数组的值是到目标值的最优解,是用来实现每一步状态的。

关键字:房天下fangcom_广告制作简介_镇江seo_常见的营销方式有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: