随笔分类 -  动态规划

摘要:题目:假设你需要进入一个房间,但是房间在楼上,你需要走完n阶台阶,才能到楼上,如果你一次性可以走1、2或3个台阶,可以计算出你一共有多少种方案去走完所有的台阶进入房间呢? 解题思路:定义一个状态函数f(n)用来表示如果要走n阶台阶一共可以有方案数量,则f(n)=f(n-1)+f(n-2)+f(n-3 阅读全文
posted @ 2016-09-14 00:37 PinXiong 阅读(321) 评论(0) 推荐(0)
摘要:题目来源:To the Max题目大意:给定一个N*N的矩阵,求该矩阵中的某一个矩形,该矩形内各元素之和最大,即最大子矩阵问题。解题方法:最大子序列之和的扩展解题步骤:1、定义一个N*N的矩阵state,state[j][k]用来存放矩阵的某行中第j到k个元素的最大值;2、对于行如何处理呢?我们可以... 阅读全文
posted @ 2014-09-29 01:03 PinXiong 阅读(186) 评论(0) 推荐(0)
摘要:最长子序列之和问题算法一:暴力法(时间复杂度:O(N^2))算法描述:依次求从j到i中最大的和,并将最大的和记录在maxValue中,容易理解但是效率低。 1 static int MaxSum1(int[] arr) { 2 int maxValue = Integer.MIN_V... 阅读全文
posted @ 2014-09-29 00:38 PinXiong 阅读(736) 评论(0) 推荐(0)