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

  • 相关阅读:
    TCP报文发送工具
    Java基础—注解的使用
    STM32以太网ETH
    EC20 minipcie版4g模块开发笔记
    usb端点(endpoint)知识详解
    STM32 usb_mem.c和usb_sil.c文件的分析
    USB的中断说明
    STM32 可编程电压监测器(PVD)实现数据掉电保存
    关于FSMC地址线的理解
    STM32F4—fsmc的配置步骤
  • 原文地址:https://www.cnblogs.com/wooder/p/5324065.html
Copyright © 2011-2022 走看看