动态规划
文章平均质量分 78
upupday19
这个作者很懒,什么都没留下…
展开
-
动态规划--更新数组值为其右边最大值
需求:Given an array of integers, replace every element with the next greatest element (greatest element on the right side) in the array. Since there is no element next to the last element, replace it wi...原创 2017-11-22 21:54:34 · 346 阅读 · 0 评论 -
动态规划--最大乘积子序列
需求:找出一个序列中乘积最大的连续子序列(至少包含一个数)。比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。分析:1、O(n^2)暴力求解,变量数组每个元素,求其所有的子序列的乘积,并更新乘积最大值。2、O(n)采用动态规划思想,类似于求最大和子序列,但是乘法和加法不同,确定某个元素为结尾的子序列最大和时,需要看其前一个元素为结尾子序列最大和是否是正数,而对于乘...原创 2017-11-13 14:34:12 · 1558 阅读 · 0 评论 -
动态规划--最大和子序列
需求:给定一个整数数组int nums[],找到一个具有最大和的子数组,返回其最大和。分析:1、O(n^2)遍历数组,每个元素维护一个以该元素为开头的子序列的和,并更新最大和2、O(n)求解数组中和最大子序列,实际上可以看成是动态规划问题。对于数组第i个元素,其最大值依赖于以第i-1个元素为结尾的子序列的最大和,如果小于0,那么以第i个元素为结尾的子序列最大和是其本身,否则就是第i个元素加上以第i...原创 2017-11-12 18:59:06 · 339 阅读 · 0 评论 -
爬楼梯问题
需求:假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?分析:1、递归求解(类似于斐波拉契数列)设楼梯数为n,方案数为S(n)。当n <= 2时,S(n) = n,当n >= 3时,S(n) = S(n-1) + S(n-2),即对第n层楼梯,每个方案中其前一个台阶要么是n-1,要么是n-2,所以需要求解其前两个台阶的所有方案数2、...原创 2017-11-12 15:30:10 · 601 阅读 · 0 评论 -
动态规划求解路径问题
动态规划求解的两个条件: 1)最优解问题 2)大问题可以拆分成小问题,大问题的最优解包含小问题的最优解,将小问题的最优解保存起来,在求大问题最优解的时候无需重新求解,直接拿来用即可。具体问题需求一: 给定m*n矩阵,从左上角出发,到右下角,每次只能向右走或者向下走,求共有多少路径?分析: 假设路径数是f(m, n),那么第一步如果向右走,那么有f(m, n-1)种走法,如果...原创 2018-04-26 22:05:22 · 1865 阅读 · 0 评论