• 返回一个整数数组中最大子数组的和1


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

    设计思想:

    1.用户随机输入10个数作为数组

    2.根据二维数组作为子数组最大值的表示方式

    3.用递推的方法成功找到子数组最大值

    4.成功找到最大值与最大子数组

    #include<iostream>
    #define N 10
    using namespace std;
    
    void main()
    {
        int A[N];        //用户输入的数组
        int B[N][N];   //存放所有的数组和
        int i, j, k;
        int sum;
        cout << "输入" << N << "个数:" << endl;
        for (i = 0; i<N; i++)
        {
            cin >> A[i];
        }
    
        cout << endl;
        for (i = 0; i<N; i++)
        {
            for (j = 0; j<N - i; j++)
            {
                sum = 0;
                for (k = j; k <= j + i; k++)
                {
                    sum = sum + A[k];
                    B[i][j] = sum;
                }
            }
        }
        //最大子数组的位数
        int max = A[0];
        int x, y;
        for (i = 0; i<N; i++)
        {
            for (j = 0; j<N - i; j++)
            {
                if (max<B[i][j])
                {
                    max = B[i][j];
                    x = i;
                    y = j;
                }
            }
        }
        cout << "最大子数组之和为:" << max << endl;
        cout << "最大子数组为:";
        for (i = 0, j = y; i <= x; i++, j++)
            cout << A[j] << "	";
    }

    总结:

    本次实验运用到动态规划,需要将Xi-Xi+1的结果作比较然后得出最后结果

    结对开发伙伴:朱建颖  http://www.cnblogs.com/zjy666

  • 相关阅读:
    前端大文件上传方法(深度好文)
    windows版idea 2018.3.5版 永久激活教程
    性能优化随笔
    使用java画一张海报
    Gson杂记录
    Gson转Map时,Int会变成double解决方法
    浅析VO、DTO、DO、PO的概念、区别和用处
    SpringCloud框架搭建+实际例子+讲解+系列五
    raid总结
    MD5与SHA1
  • 原文地址:https://www.cnblogs.com/wooder/p/5324065.html
Copyright © 2020-2023  润新知