zoukankan      html  css  js  c++  java
  • 软件工程个人作业05(二维数组求最大子数组的和)

      题目:返回一个二维整数数组中最大联通子数组的和。
      要求:输入一个二维整形数组,数组里有正数也有负数。
    求所有子数组的和的最大值。要求时间复杂度为O(n)。

      程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是:
      数组的行数,
      数组的列数,
      每一行的元素, (用逗号分开)
      每一个数字都是有符号32位整数,当然,行数和列数都是正整数。
    程序设计思路:此次试验考虑到需要求最大联通子数组和。可以定义一个类(其中有value,x,y,neighbor,select),主函数里定义一个二维的对象,具体操作如下:

    a:在二维对象中,先选出所有的正数,将其select值赋为1。

    b:将孤立的数的select值赋为0,及将那些影响子数组连通性的数排除在外。

    c:判断哪些正数的neighboe值为1,如果二维对象中所有的neighbor的值得个数大于3,则选出那个除了边缘点的点,记下他的坐标值。

    d:对于上一步的那个“另类数”,选出他的一个“邻居”,使得这个子数组是联通的。这时选出的子数组中的对象的select值为1.

    e:最后算出所有对象中select值为1的value的和。这个值就是二维最大联通子数组的和。

    程序还在开发中。。。。。

  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/yibao/p/6679806.html
Copyright © 2011-2022 走看看