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  

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

  • 相关阅读:
    Linux C/C++编程之(十四)文件操作相关函数
    javascript语法之循环语句
    javascript语法之流程控制语句
    javascript语法之字符串转换成数字
    javascript语法之声明变量
    认识javascript
    css之定位
    css之盒子模型案例
    常见Css样式
    Css详解之(伪类选择器)
  • 原文地址:https://www.cnblogs.com/jiajun1/p/5326316.html
Copyright © 2011-2022 走看看