zoukankan      html  css  js  c++  java
  • 程序开发之最大子数组

    一、题目:返回一个整数数组中最大子数组的和
    二、实验思路:

    1.定义一个整型数组num[n],随机生成数组中元素的值,
    2.定义一个二维数组arr[n][2],arr[i][0]不包含num[i]子数组之和最大值,arr[i][1]包含num[i]子数组之和最大值
    3.随机生成数组num[n]
    4.采用循环递归的方式,调用max函数计算arr[i][0],arr[i][1],计算包含数组元素本身和不包含本身的前子数组最大和的情况,将他们之中的最大值赋给Max

    三源代码

    复制代码
    复制代码
     1 #include<iostream>
     2 #include<time.h>
     3 #define N 100                            //设定数组的最大个数为100
     4 using namespace std;
     5 int main()
     6 {    
     7     srand((unsigned)time(NULL));         
     8     int num[N],arr[N][2];               //num[]用于存放数组,arr[i][0]是指不包括num[i]之前最大子数组的和,arr[i][1]是指包括num[i]的最大子数组的和
     9     int Num,Max;                        //Num是指数组的长度,Max用来存放最大和
    10     cout<<"请输入数组的长度:"<<endl;
    11     cin>>Num;
    12     cout<<"这个数组为:"<<endl;
    13     for(int i=0;i<Num;i++)              //随机生成一个数组
    14     {
    15         num[i]=-20+rand()%50;
    16     }
    17     for(int i=0;i<Num;i++)
    18     {
    19         cout<<num[i]<<" ";
    20     }
    21     cout<<endl;
    22     cout<<"请输入这个数组的最大子数组和为:"<<endl;
    23     arr[1][0]=0;
    24     arr[1][1]=num[1];                          //初始化arr[i][0],arr[i][1]
    25     for(int i=0;i<Num;i++)                     //采用递归的方式来求子数组的最大和
    26     {
    27         arr[i][0]=max(arr[i-1][0],arr[i-1][1]);             //调用max函数计算不包含num[i]子数组之和最大值
    28         arr[i][1]=max(arr[i-1][1]+num[i],num[i]);           //调用max函数计算包含num[i]子数组之和最大值
    29         Max=max(arr[i][0],arr[i][1]);
    30     }
    31     cout<<Max<<endl;
    32 }
    复制代码
     
    复制代码

    四、实验结果

    五 实验总结

    此次实验主要目的是锻炼我们结对编程的能力,虽说此次代码很容易,但是也出现了不少的问题。

    第一,关于手脑协调的问题,写代码的一方,比如我,脑袋光顾着打代码了也没往下深入的思考,然后小伙伴就把

    以下的解题思路想出来了,让我一直忙着敲,思路可能有点不适应,手和脑不太协调,使得编写代码过程中代码错误小,

    但是思维有些停滞,以后还需加强练习。

    第二,关于交流的问题,两人可能思路有快有慢,有前有后,就难免会发生意见的分歧,这时,我们俩都做的认真听取对方的

    想法和建议,从而更快的解决问题,达到了双赢。

    第三,关于效率的问题,我是个比较懒得人,有了小伙伴的督促我更加早的完成了这个问题,没有拖到最后,我觉得两个人一起挺好,互相监督

    同甘共苦,荣辱与共很棒。

    我的结对伙伴:鲁鑫 http://home.cnblogs.com/u/luxin123/

  • 相关阅读:
    centos7安装kubenetes
    用户密码字典
    curl使用
    docker部署rabbitmq集群
    记一次使用docker搭建fastdfs服务的过程
    filebeat删除多余标签
    Python format格式化输出
    python3 统计NGINX pv uv 最多IP访问
    linux修改网卡名为eth0
    模式查找
  • 原文地址:https://www.cnblogs.com/zhangyao999/p/5303882.html
Copyright © 2011-2022 走看看