zoukankan      html  css  js  c++  java
  • 二维数组之后续篇章(张硕---李帅)

    又是一个令人头疼的题目啊。。。。

    这次又增加难度了!!!找二维数组中的最大子数组,要求联通即可:

    开始自己想法是枚举,然后找规律,后来发现这种方法实在是弱爆了,而且不好实现,后来通过查阅资料,发现大牛们都推荐动态规划,下面把思想陈述一下:

    首先,将二维问题降维处理:

    例如,用2 维数组a[1 : m][1 : n]表示给定的m行n列的整数矩阵。子数组a[i1 : i2][j1 : j2]表示左上角和右下角行列坐标分别为(i1, j1)和(i2, j2)的子矩阵。

    先按照行排列出所有可能区间,然后,再去求列的范围。

    更详细的,当行区间确定之后,剩下就是确定列区间了,一旦确定列区间,最大子矩阵就确定了。

    当行区间确定之后,求列区间的方法,可以转化成一维数组的最大连续子序列的问题:对行区间[i1, j1],依次对列进行求和,就得到n个数据的以为数组,根据最大连续子序列的和的求法,就可以获得连续子序列最大和。

    仍然用nGreatestNum来记录最大值,算出一个子矩阵的和,就进行比较即可。

    算法在设计中。。。

  • 相关阅读:
    mac 配置 iterm2
    python面试题
    待办事项--flask
    八皇后问题c语言版(xcode下通过)
    对分布式一些理解
    观察者模式
    用redis实现悲观锁(后端语言以php为例)
    只用200行Go代码写一个自己的区块链!(转)
    php的生命周期的概述
    linux网络编程1 最简单的socket编程
  • 原文地址:https://www.cnblogs.com/zsjy/p/3634613.html
Copyright © 2011-2022 走看看