• 最大子数组(1)


    题目:返回一个整数数组中最大子数组的和。

    要求:输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。

    设计思想:

      利用动态规划的思想,将该问题转化成计算包含当前数组元素以及不包含当前数组元素的子数组之间的较大者,并向前递推,最后变成计算第一个元素和0之间的较大者,从而解决了该问题。

    源代码:

    1 //计算一列数组中最大子数组之和,李青,胡金辉
     2 #include<iostream>
     3 using namespace std;
     4 #define max(x,y)  ( x>y?x:y )
     5 int main()
     6 {
     7     int i,length=0,list[1000];//定义循环变量、数组长度、数组
     8     int sum1;//记录包含当前数组元素的最大子数组之和
     9     int sum2;//记录不包含当前数组元素的最大子数组之和
    10     cout << "请输入数组元素:" << endl;
    11         while ((cin >> list[length++] ) && getchar() != '
    ');
    12         cout << "你输入了" << length << "个数" << endl;
    13     
    14     sum1 = list[0];
    15     sum2 = 0;
    16     for (i = 1; i < length; i++)
    17     {
    18         sum2 = max(sum2, sum1);
    19         sum1 = max(sum1 + list[i], list[i] );
    20     }
    21     sum1 = max(sum2, sum1);
    22     cout << "你输入的数组中最大子数组的值为:"<<sum1<<endl;
    23     return 0;
    24 }

    结果截图:

    总结:

      本次实验主要运用到了动态规划的思想,一开始并不是太清楚该思想是什么意思,后来在老师的解释下明白了,最后写出了程序,总的来说这次还是有很大收获的。

    项目计划总结:

    日期/任务 听课 编程 阅读相关书籍 网上查找资料 日总计
    周一 100 20 10 10 140
    周二   30   10 40
    周三   100 30 20 150
    周四 100 30     130
    周五   30   20 50
    周六   30 30   60
    周日          
    周总结 200 240 70 60 570

    时间记录日志

    日期 开始时间 结束时间 中断时间 净时间 活动 备注
    3/21 14:00 15:50 10 100 听课 软件工程上课
      16:00 16:20 0 20 编程  
      16:30 16:40 0 10 阅读相关书籍 《构建之法》
      17:00 17:10 0 10 网上查找资料  
    3/22 19:00 19:30 0 30 编程  
      19:40 19:50 0 10 网上查找资料  
    3/23 14:00 16:00 20 100 编程  
      16:30 17:00 0 30 阅读相关书籍 《梦断代码》
      17:10 17:30 0 20 网上查找资料  
    3/24 14:00 15:50 10 100 听课 软件工程上课
      19:00 19:30 0 30 编程  
    3/25 19:00 19:30 0 30 编程  
      20:00 20:20 0 20 网上查找资料  
    3/26 9:00 9:30 0 30 编程  
      10:00 10:30 0 30 阅读相关书籍 《构建之法》

     缺陷记录日志:

    日期 编号 类型 引入阶段 排除阶段 修复时间 备注
    3/22 1 20 编码 编译 1min 未定义变量sum2
    3/25 2 20 编码 编译 1min 循环嵌套输出错误

    结对开发伙伴:李青  http://www.cnblogs.com/liqing1

    工作照:

  • 相关阅读:
    聊聊 API Gateway 和 Netflix Zuul
    现行统编中学数学教科书有多烂
    线程池的成长之路
    Quick Guide to Microservices with Spring Boot 2.0, Eureka and Spring Cloud
    以太坊、Hyperledger Fabric和Corda,哪个更好?
    【SFA官方翻译】Spring WebFlux和Spring Cloud进行响应式微服务开发
    goroutine背后的系统知识
    goroutine与调度器
    MySQL命令,一篇文章替你全部搞定
    微服务架构技术栈选型手册(万字长文)
  • 原文地址:https://www.cnblogs.com/hujinhui/p/5323377.html
Copyright © 2020-2023  润新知