摘要: 前面已经谈过最大一维子数组和问题,这里面扩展到二维。一. 常规情况一个矩形的数组,找到一个矩形的子数组有最大的元素和,求这个和。 1. 从朴素算法入手,枚举矩形数组的4个顶点,以此计算其数组和。同样,时间复杂度很大,我们仅以此入手逐步优化。2. 参照一维数组的思路,保存中间结果,利用动态规划优化算法。优化点就是子数组求和一处,二维数组的求和不同于一维,但是仍然能找到方法:先声明这个方法是参考《编程之美》书中的讲解的,鄙人大脑迟钝,尚无法独创:令二维数组的起点不是0,而是1,使用PS[i][j]表示以[0][0], [i][0], [0][j], [i][j]四个顶点围起来的子数组和,边界... 阅读全文
posted @ 2013-10-01 11:39 Shone JIN 阅读(504) 评论(1) 推荐(0) 编辑
摘要: 前面已经谈过最大一维子数组和问题,这里面扩展到二维。 一. 常规情况,一个矩形的数组,找到一个矩形的子数组有最大的元素和,求这个和。 1. 从朴素算法入手,枚举矩形数组的4个顶点,以此计算其数组和。同样,时间复杂度很大,我们仅以此入手逐步优化。 2. 参照一维数组的思路,保存中间结果,利用动态规划优化算法。优化点就是子数组求和一处,二维数组的求和不同于一维,但是仍然能找到方法: 先声明这个方法是参考《编程之美》书中的讲解的,鄙人大脑迟钝,尚无法独创: 令二维数组的起点不是0,而是1,使用PS[i][j]表示以[0][0], [i][0], [0][j], [i][j]四个... 阅读全文
posted @ 2013-10-01 11:38 Shone JIN 阅读(127) 评论(0) 推荐(0) 编辑