动态规划解决宫格移动

本文介绍了动态规划的概念及其在解决宫格移动问题中的应用。动态规划通过分解问题到子问题,寻找最优解,减少了计算量。例如,从(0,0)到(6,8)的移动方式总数可以通过递推公式计算。总结提到,动态规划是将复杂问题简化为子问题并逐步扩展至目标问题的过程。" 118997875,9089936,算法学习:单调栈及其在LeetCode经典问题的应用,"['数据结构', '算法', 'Java', 'LeetCode', '单调栈']
摘要由CSDN通过智能技术生成

介绍

动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。

动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题。

核心点:一定要分解到子问题,子问题往往是可解的。
类似从简单问题扩散到最终解。

例子

从(0,0)点移动到(6,8),每次只能移动一步,要么往上,要么往右。请问有多少种走法。

典型动态规划题目:
假设 s(i,j)代表ij点的走法总数,那么他的走法是s(i,j-1)和s(i-1,j)的总和。 这一步就是分解为子问题的过程。
注意理解,所有动态规划的就是要找到这个过程。
其余的则是程序实现了。

def dp_move():
    s = np
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值