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  

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

  • 相关阅读:
    【转载】uboot的工具mkimage使用方法
    u-boot-2010.3移植到Tiny6410问题总结
    【转载】 GNU GCC 选项说明
    【转载】GCC 预处理器选项
    用kermit通过串口往nandflash任意地址里烧写任何文件!
    自己写Tiny6410的Bootloader总结!
    ARM常用汇编指令介绍
    Ubuntu14.04和Tiny6410挂载NFS服务!
    Tiny 6410的Linux学习总结!
    Tiny6410下的第一个Linux驱动程序
  • 原文地址:https://www.cnblogs.com/jiajun1/p/5326316.html
Copyright © 2011-2022 走看看