• 返回一个整数数组中最大子数组的和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

  • 相关阅读:
    C# 删除指定目录下的所有文件及文件夹
    C# 数组集合分页 Skip Take
    MongoDB模糊查询 工具
    C# skip 重试执行代码段
    C# 加载配置文件
    消息队列MSMQ的使用
    C#中const和readonly的区别
    JSP页面中的tab页
    使用jquery获取单选按钮radio的值
    JSP页面获取下来框select选中项的值和文本的方法
  • 原文地址:https://www.cnblogs.com/wooder/p/5324065.html
Copyright © 2020-2023  润新知