![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 95
允歆辰丶
一个平平无奇的码农
展开
-
Java之动态规划的背包问题
动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题,进行解决,从而一步步获取最优解的处理算法动态规划对于解决最优子结构啊和重叠子问题等问题时候,有着很好的应用。原创 2023-02-03 15:44:07 · 2263 阅读 · 4 评论 -
Java之动态规划之机器人移动
ynamicrogramming)算法的核心思想是:将大问题划分为小问题,进行解决,从而一步步获取最优解的处理算法动态规划对于解决最优子结构啊和重叠子问题等问题时候,有着很好的应用对于。这一题从二维变成了一维,显然是增加了难度的,因为可能存在在一个位置上来回移动的情况,所以dp数组和前几题有明显的的不一样,采用从后到前的推导方式,从target位置推导到start位置1.确定dp数组(dp table)以及下标的含义dp[i][j]的含义:机器人剩余j步,在i位置走到target位置可以有dp[i]原创 2023-02-19 12:52:47 · 1768 阅读 · 8 评论 -
Java之动态规划之子序列问题
动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题,进行解决,从而一步步获取最优解的处理算法动态规划对于解决最优子结构啊和重叠子问题等问题时候,有着很好的应用对于动态规划问题,大致可以分为以下几步:力扣:力扣这一题首先要理解子序列问题,子序列不一定是连续一段的数组(子数组),只需要它的序列是递增的即可(例如index=0,2,3)对于解决这样的动态规划的背包问题,还是采用通用的五个步骤1.确定dp数组(dp table)以及下标的含义本题的dp数组定义不是根据题目直接来原创 2023-02-12 20:29:38 · 1817 阅读 · 20 评论 -
Java之动态规划之股票问题
中我们解决的问题解决的问题就两个状态,一个是持有股票的状态,一个是未持有股票的状态,分析这一题,我们多了个冷冻期,如何进入冷冻期呢?那么它的前一天一定是卖出股票的状态,这样才能达到冷冻期,冷冻期在进入可自由买入股票状态,这样就有以下。交易,说明你可以不交易,也可以选择完成一笔交易,也可以完成两笔交易,不能像第二个问题一样完成多笔交易。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。设计一个算法来计算你所能获取的最大利润。原创 2023-02-09 00:23:35 · 983 阅读 · 1 评论 -
Java之动态规划之爬楼梯问题
对于这个问题,前面我们用了最直接的动态规划问题来解决,当我们学习了背包问题之后,我们可以用这个思想来解决这个问题,因为我们每次可以爬1个或者2个,每一次都可以在1个和2个来进行选择,爬几层的这个问题就相当于背包中的物品,n级台阶相当于背包的重量,这样就转换为了。我们可以增加一个维度,用来存储偶数步和奇数步的方法数,选择二维dp数组dp[][]的含义是:爬到第i层台阶,走偶数步的有dp[i][0]中方法,走奇数步有dp[i][1]种方法。对于解决这样的动态规划的背包问题,还是采用通用的五个步骤。原创 2023-02-06 17:28:09 · 2900 阅读 · 0 评论 -
Java之动态规划之四次打家劫舍问题
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,此题与上一题基本相似,主要的一处不同就是这一题的房子是首位联通的,说明如果你选择了第一个房间,就不能选择最后房间了.你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。同时,相邻的房屋装有相互连通的防盗系统,对于解决这样的动态规划的背包问题,还是采用通用的五个步骤。,小偷能够盗取的最高金额。原创 2023-02-05 21:02:07 · 1126 阅读 · 0 评论