求最大子数组二(结对开发)

结对伙伴

纪烈翔

博客名:我们都是小怪兽

链接:http://www.cnblogs.com/qwer113/

设计思想:

1:随机输入一个数组

2:用直接穷举法求出该数组的最大和(把数组看成环形)

3:定义一个结构体,求出最大数组时,记录该数组的开始和结束的位置

4:输出

程序源代码:

//动态规划
//2016/3/26
#include "iostream"
using namespace std;

#define N 100

typedef struct data//定义结构体
{
    int kaishi;
    int jieshu;
    int value;
}data;

int main()
{
    //任意输入一个数组
    int  num = 0;
    int A[N];
    cout << "任意输入一个数组:";
    while (true)
    {
        cin >> A[num];
        num++;
        if (getchar() == ‘\n‘)
        {
            break;
        }
    }
    data Start;
    data All;
    //初始化
    Start.kaishi = All.kaishi = 0;
    Start.jieshu = All.jieshu = 0;
    Start.value = All.value = A[0];
    //直接穷举法求出该环形数组的最大值
    //记录该数组的起始位置和结束位置
    for (int i = 0; i < num; i++)
    {
        Start.value = 0;
        Start.kaishi = i;
        for (int j = i; j < num; j++)
        {
            Start.value += A[j];
            Start.jieshu = j;
            if (Start.value>All.value)
                All = Start;
        }
        for (int j = 0; j < i; j++)
        {
            Start.value += A[j];
            Start.jieshu = j;
            if (Start.value>All.value)
                All = Start;
        }
    }
    //输出
    cout <<"开始位置:"<<All.kaishi+1<<endl<<"结束位置:"<<All.jieshu+1<<endl<<"最后和为:"<< All.value<<endl;

    return 0;

}

运行截图:

项目计划总结:

时间记录日志:

缺陷记录日志:

时间: 2024-07-28 14:47:08

求最大子数组二(结对开发)的相关文章

求最大子数组(结对开发)

结对伙伴: 纪烈翔 博客名:我们都是小怪兽 链接:http://www.cnblogs.com/qwer113/ 设计思想: 1:随机输入一个数组 2:用动态规划求出该数组的最大子数组的和 3:定义一个结构体,当找到该最大子数组时,记录该数组的开始和结束 4:输出 结对开发过程: 程序源代码: //动态规划 //2016/3/23 #include "iostream" using namespace std; #define N 100 typedef struct data { i

求一维数组的最大子数组1(结对开发)

题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n) 发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选).源代码.结果截图.总结. 结对开发的伙伴: 博客名:Mr.缪 姓名:缪金敏 链接:http://www.cnblogs.com/miaojinmin799/ 分析: 如果按照最笨的方法就是一个一个的比较先比较一个数的然后二个

二维数组最大子数组(结对开发)

1.题目要求 题目:返回一个二维整数数组中最大联通子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值. 2.设计思想: 对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分两种情况第一种是行之间的最大子数组是相连的,如第一行是2-5,第二行是3-6,这是直接相加就行.第二种是不相连的如第一行是2-5,第二行是6-7,这时候就把每行的最大子数组看成一个整体,再使每个最大数组块

结对开发之二维环数组求最大子数组的和4

结对成员:信1201-1班    黄亚萍 信1201-1班    袁亚姣 一.题目要求 要求:            输入一个二维整形数组,数组里有正数也有负数.            二维数组首尾相接,象个一条首尾相接带子一样.            数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.            求所有子数组的和的最大值.要求时间复杂度为O(n)题目:返回一个二维整数数组中最大子数组的和. 二.设计思路 类似于3,将二维数组转化为一维数组来求最大子数组

结对开发--四实现循环二维数组求最大子数组的和

一.实现思路 再上一个实验基础上加上环,我们实现环的思想是每一列依次向此替换,直至替换出能出现的所有的二维数组,再用上一个求最大子数组的方法全部实现 二.实验代码 package com.minirisoft; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Scanner; public class HuanTwoArray { public stat

结对——二维数组首尾相连求最大子数组和

一.题目与要求 题目.返回一个二维整数数组中最大子数组的和 要求.1.输入一个二维整形数组,数组里有正数也有负数. 2.二维数组首尾相接,象个一条首尾相接带子一样. 3.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和 二.设计思路 在上一次的以为循环数组的基础上,和二维数组求最大子数组相结合,将功能合并,完成题目要求. 第一步.将每一行的数组作为循环数组求最大子数组 第二步.通过枚举的方式,将每一种情况的和存入到新建二维数组中 第三部.通过逐列计算最大子数组的方法求所有子矩阵的最

结对开发——环形一维数组求最大子数组和

题目:返回一个整数数组中最大子数组的和.要求:(1)输入一个整形数组,数组里有正数也有负数.(2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.(3)如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大.(4)同时返回最大子数组的位置.(5)求所有子数组的和的最大值.要求时间复杂度为O(n).一.设计思想 这个问题的最优解一定是以下两种可能.可能一:最优解没有跨过array[n-1]到array[0],即和非环形数

二维环形数组求最大子数组和

一.要求 1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 3.结对开发要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 二.设计思路 1.从键

二维数组求最大子数组

设计思路: 首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生: 然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只存放最大的子数组,以及记录最大子数组的位置,从第一个数开始每行每列进行求和比较,以求得最大子数组的值,以及最大子数组所包含的数: 最后进行结果的输出与验证. 代码: 法一: package zishuzu; import java.util.*; public class zuixiaozishuzu { public stat