zoukankan      html  css  js  c++  java
  • 返回一个整型数组中最大子数组的和(02)

    组员:刘伟 http://www.cnblogs.com/Lw-1573/p/5323542.html

    1.要求:

    输入一个整形数组,数组里有正数也有负数。
    数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
    如果数组A[0]……A[j-1]首尾相邻,允许A[i-1],…… A[n-1],A[0]……A[j-1]之和最大。
    同时返回最大子数组的位置。
    求所有子数组的和的最大值。

    2分析:

    这个题目是在上个题目的基础的加上数组首位相连,并该数组最大子数组的和,实现方法就是把环变成直线的方法,在输入数组的时候把数组扩充一倍,然后求以每个数作为开始的,长度为n的,最大子数组的值,就可以得到结果

    3代码:

     1 #include<iostream>
     2 #include<time.h>
     3 #include<stdlib.h>
     4 #define N 100000
     5 using namespace std;
     6 int main()
     7 {
     8     int a[N];
     9     int start,end,i, sum,max,m,n;
    10      cout<<"请输入个数:";
    11      cin>>n;
    12      m=n;
    13      cout<<"请输入数组:";
    14     for( i=0;i<n;i++)
    15     {
    16         cin>>a[i];
    17         a[i+n]=a[i];
    18     }
    19     max=a[0];
    20     start=0;
    21     end=0;
    22     for(int j=0;j<n;j++)
    23     {
    24         sum=0;
    25         for(int k=j;k<n+j;k++)
    26         {
    27             sum=sum+a[k];
    28             if(sum>max)
    29             {
    30                 max=sum;
    31                 start=j+1;
    32                 end=k+1;
    33             }
    34         }
    35     }
    36     cout<<"最大子数组的值为:"<<" "<<max<<endl;
    37     cout<<"开始于第"<<start<<"个数"<<"    "<<"结束在第"<<end%n<<"个数"<<endl;
    38     cout<<"这个子数组为:";
    39     for(int c=0;c<end-start+1;c++)
    40     {
    41         cout<<a[start+c-1]<<"  ";
    42     }
    43 }

    4截图:

    5项目计划总结:

    日期&&任务 听课 编写程序 阅读相关书籍 网上查找资料 日总计
    周一 100 70   15 195
    周二   40 45   95
    周三   50 45 35 120
    周四 100 40 40   180
    周五   90   15 105
    周六     40 15 65
    周日     45   45
    周总

    6时间记录日志:

    日期 开始时间 结束时间 中断时间 净时间 活动 备注
    3/21 14:00 15:50 10 100 听课 软件工程上课
      21:00 21:25   20 阅读书籍  《构建之法》
    3/22 14:00 17:00 10 110 编程 编写作业
      18:00 22:00 10 110 看书 《构建之法》
    3/23 21:00 21:30   30 编程 编写老师布置的作业
    3/23 14:00 15:50 10 100 听课 软件工程上课
    3/24 16:00 18:00   120 编程 编写作业
    3/25 9:00 9:30   30 看书 《构建之法》 《人月神话》
    3/26 9:00 9:30   30 看书 《构建之法》

    7缺陷记录日志:

    日期 编号 类型 引入阶段 排除阶段 修复时间 修复缺陷
    3月26日 1   编码 编码 10min  

    在环变链的时候出现了错误,最后用循环和拓展数组解决

  • 相关阅读:
    一般删除网页数据和jquery下使用Ajax删除数据的区别
    JavaScript 局部刷新
    ASP.net 网站开发知识点总结
    deque
    DHCP协议
    IP分类以及特殊IP
    重载运算符函数及其注意事项
    linux gdb基本概念
    std::vector 源代码
    iterator 的设计原则和traits
  • 原文地址:https://www.cnblogs.com/jiajun1/p/5326316.html
Copyright © 2011-2022 走看看