• 结对开发之二维数组探讨


    1、 由一维数组改为二维数组难度增加很大,刚看到题目想到的就是穷举法,由第一个元素开始向右、下、右下三个方向扩展依次计算子数组的和并进行比较记录最大和,然后再从下个元素开始重新进行上一个元素的操作直到找出最大子数组的和。

    2、由于时间复杂度太高,便开始讨论其他的方法,本来想着按照我们一位数组计算最大子数组的方法,发现并不适用。

    3、接下来我们想到的是从整个数组开始,计算边框和是否有负数,有负数就去掉该边框,继续计算,在试验的过程中发现会把最大子数组包含的某些元素也去掉导致结果出错。

    4、最终想到的是将二维数组各列进行压缩变成若干一位数组,用一位数组最大子数组的计算方法分别找出个一位数组的最大结果,然后再综合找出最大的。

     

    感受:结对开发在此次课堂作业中,比上次有了更加明显的显现,我们在在比较轻松的题目中我们很容易找到答案,但是在遇到不是那么容易的题目途中,我们更加倾向于去寻找帮助,看自己的队友有什么思路,能给自己带来些许思路。在这个就像我们在起初的设计时,预想着使用剔除法,姑且这样称呼,将自己的初始矩阵设定后,采取四面削减的策略,排除行或列的和是负值的行和列,以达到最终目的,后来想到此种方法的缺点是,有可能在行排除的时候第一次就剔除了被选中的行,这种方法是从反面思考的方法,借鉴了数学中的反证法,我感觉是一种思路,有待进一步深入探讨。

  • 相关阅读:
    window.location.Reload()和window.location.href 区别
    PHP substr(),mb_substr()及mb_strcut的区别和用法
    jstree节点展开设置
    关于Jquery中ajax方法data参数用法
    HTML相对路径(Relative Path)和绝对路径(Absolute Path)
    Win32基础编程了解窗口类
    Visual C++ ActiveX 开发指南:第一章 什么是ActiveX
    分粥
    蛙蛙推荐:ASP实现自定义标签模板
    蛙蛙请教:如何利用委托实现多个方法同时调用.
  • 原文地址:https://www.cnblogs.com/zZ-ily/p/4370187.html
Copyright © 2020-2023  润新知