![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 59
FledglingMan
爱学习,成长中
展开
-
04动态规划进阶---背包问题
背包问题可能是动态规划算法中最经典的问题了,三种最常见的背包问题分别是0-1背包问题,完全背包问题和多重背包问题。关于这三种背包的讲解网上有很多,但是很多只是给出状态转移方程或写出伪代码,或者是只给出0-1背包和完全背包的代码但并没有多重背包的代码,因此本文在这里将系统地总结这三种背包问题的最佳解法及相应java代码。 题1.经典的0-1背包问题。给定一组物品,每种物品都有自己的重量和价格,在限原创 2017-10-11 10:16:28 · 544 阅读 · 0 评论 -
03动态规划基础---机器人走方格问题
题目1.对于m*n的方格(注意m,n为x,y轴顶点数),机器人只能向右走或向下走,求机器人从方格左上角走到右下角共有多少种走法。对于2*2的方格有两种走法,3*3的方格有6种走法,求对m*n的方格有多少种走法。 首先分析题目的状态转移方程,因为机器人只能向右或向下走,对于非边界的每一个顶点array[i][j],都有dp[i][j]=dp[i-1][j]+dp[i][j-1],其中dp[i][j原创 2017-10-10 21:29:45 · 1322 阅读 · 0 评论 -
02动态规划基础---最大连续子序列的和
关于动态规划的相关理解我在上一篇博客动态规划基础01---最长递增子序列中写过,这一篇我们主要练习类似的dp算法题。 题1.对于包含任意正负数的整型数组,求它的最大连续子序列和。比如说,数组array={1,2,3,-7,4,5,6},则它的最大连续子序列为4,5,6,和为15. 首先还是先分析题目的状态转移方程,设maxCur[i]为前i个数字的最大连续子序列和,则 当 maxCur[i-原创 2017-10-10 21:14:25 · 342 阅读 · 0 评论 -
01动态规划基础---最长递增子序列长度
最近在做动态规划的专题训练,准备写一个动态规划的专栏,因为题目较多,打算分几篇来写。 对于动态规划的概念网上有很多,个人理解对于动态问题,最重要的是写出状态转移方程,其次是写出边界条件,最后根据状态转移方程和边界条件进行代码编写。需要注意的是,与递归方法相比,动态规划是自底向上的,而递归是自顶向下的。所以对于递归问题,我们首先要写出顶层的递推公式,再写出底层的递推出口;而对于动态规划问题,我们往原创 2017-10-10 20:41:18 · 242 阅读 · 1 评论 -
JAVA贪心算法实现背包问题
以下贪心算法相关概念及题目转载自http://blog.csdn.net/effective_coder/article/details/8736718,java实现代码为博主原创 贪心算法思想: 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心转载 2017-09-12 19:26:33 · 2536 阅读 · 0 评论