动态规划
文章平均质量分 79
codekiller_
普天之下,谁不辛苦
展开
-
[LeetCode63]Unique pathII动态规划解题示例
一、题目描述 给定一个网格,网格中的每一个方格分别用0和1表示,其中0表示该方格可以通过,1表示该方格有障碍物,无法通过。因此该网格可以用一个n*m的矩阵M表示,其中矩阵元素只包括1和0,求M[0][0]到M[n-1][m-1]有多少种不同的路径可以到达,每次移动只能向下或者向右移动。比如给定方格为以下方格矩阵, [ [0,0,0], [0,1,0], [0,0,0] ] 则输出原创 2017-05-07 18:24:37 · 323 阅读 · 0 评论 -
【LeetCode64 Minimum Path Sum】动态规划计算路径
一、问题描述 给定一个m*n的方格,其中每一个方格中都有一个数字,现在从方格最左上方移动到最右下方,每次移动只能是想下移动或者向右移动。对于每一条路径都对应一个路径和的概念,即为该路径中所有方格中数字的和,需要求出最左上方到最右下方的所有路径中,路径和最小的那个,并且输出该路径和。 二、思路解析 这道题思路较为简单,同样的利用动态规划思路去解决问题,计算出从起点到m*n矩阵中每一个方格的最短原创 2017-06-10 21:38:20 · 365 阅读 · 0 评论 -
【LeetCode 300 Longest Increasing Subsequence】最长递增子序列
一、题目描述 给定一个乱序整数序列,要求算法在这个乱序序列中找到最长递增子序列,并且返回长度。例如,给定序列[10,9,2,5,3,7,101,18],最长的递增子序列为[2,3,7,101],因此返回长度为4,最长递增子序列可以有多个,只是其拥有一个固定的最大长度值。算法要求在O(n^2)的时间复杂度中完成,也可以尽可能的优化到O(n log n)的时间复杂度。 二、思路分析 根据分治算法原创 2017-06-23 16:13:22 · 284 阅读 · 0 评论 -
[LeetCode198 House Robber]数组中的动态规划求最值问题
一、题目解析 给定一个数组,数组中的每一位相当于一座房子,数组值代表偷窃该房子所能得到的财富值。现在一个小偷要对这么多房子进行偷窃,规定偷窃连续的两个房子将会触发报警系统,算法需要输出小偷在这条街上偷窃所能得到的最大财富值。 二、思路解析 用动态规划的思路解决这个问题非常清晰,首先确定该问题的子问题。以n代表这条街上的房子数,由于无法偷窃相邻的两个房子,所以子问题即为money(n-2)+m原创 2017-06-23 16:58:29 · 408 阅读 · 0 评论