zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大子数组的和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

  • 相关阅读:
    教你在mac上配置adb环境变量
    Android Mediaplayer 调用release()的时候ANR
    Android ANR
    安卓android WebView Memory Leak WebView内存泄漏
    android 小结
    struts提供文件上传功能
    struts自定义拦截器
    struts拦截器的配置和使用
    Struts框架属性驱动
    struts配置文件
  • 原文地址:https://www.cnblogs.com/wooder/p/5324065.html
Copyright © 2011-2022 走看看