![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划
以leetcode的题目为主,逐一实现每一个问题
liuwangleoooO
失败了 别给自己找理由 就是菜而已!
展开
-
python—打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2.原创 2020-12-25 01:42:54 · 463 阅读 · 2 评论 -
python—四种方法求解最大连续子序列和
文章目录穷举法优化穷举分治法动态规划给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4],连续子序列 [4,-1,2,1] 的和最大,为 6。穷举法最简单的方法就是直接求解出所有的子序列之和,然后比较子序列之和,求出最大值。那么如何求解子序列呢?首先子序列的起始位置可能是任意的,结束位置也可以是任意的。可以一层循环确定子序列的起始位置,嵌套一层循环确定子序列的结束位置并求和,def getMax原创 2020-12-24 09:25:39 · 5969 阅读 · 2 评论 -
python—买卖股票的最佳时机
文章目录题目描述常规的解法动态规划题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2原创 2020-12-23 09:52:14 · 1500 阅读 · 0 评论 -
python—爬台阶
爬台阶问题:一次只能爬一阶或者两阶台阶,求爬到n阶有多少种走法。分析:假定n=10,首先考虑最后一步的情况,要么从第九级台阶再走一级到第十级,要么从第八级台阶走两级到第十级,因而,要想到达第十级台阶,最后一步一定是从第八级或者第九级台阶开始.也就是说已知从地面到第八级台阶一共有X种走法,从地面到第九级台阶一共有Y种走法,那么从地面到第十级台阶一共有X+Y种走法.即F(10)=F(9)+F(8)分析到这里,动态规划的三要素出来了.边界:F(1)=1,F(2)=2最优子结构:F(10)的最优原创 2020-12-22 09:43:21 · 1596 阅读 · 0 评论 -
python—斐波那契数列
常规的解法def fib(x): if x < 2: return x return fib(x-1) + fib(x-2)使用动态规划的思路相当于函数缓冲,加递归调用,为了避免重复,可以把计算过的值存起来,当再次用到时,可以直接使用,这其实是用空间换时间def fib(x): d = {} for i in range(x + 1): if i < 2: f = i else: f原创 2020-12-22 09:29:19 · 193 阅读 · 0 评论 -
动态规划
动态规划动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果源自百度百科动态规划问题的⼀般形式就是求最值。 动态规划其实是原创 2020-12-22 09:11:54 · 390 阅读 · 0 评论