zoukankan      html  css  js  c++  java
  • 最大子数组和(结对开发)

    题目:返回一个整数数组中最大子数组的和。

    要求:
    输入一个整形数组,数组里有正数也有负数。
    数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
    求所有子数组的和的最大值。要求时间复杂度为O(n)
     
    合作伙伴:孟西鑫
    http://home.cnblogs.com/u/wanzitou/feed/blog/
    设计思路:

    本来我和我的小伙伴打算用分情况的方法来处理这个问题,就是根据数组中各个子数组中正负数的位置进行讨论,不过这样情况也是特别多,用到很多循环。不过幸亏老师在上课时让同学讲了讲关于动态规划的知识给了我们启发。

    #include<iostream>
    using namespace std;
    int main()
    {
        int Array[100];
        int max(int A,int B);
        int i, length = 0;//用来记录数组长
        int sumOfArray;//sumOfArray用于存放包含目前的子数组的和的最大值
        int sum = 0;//sum用来存放不包含当前数的所有子数组的和的最大值
        cout << "请输入数组:" ;
        for (length = 0;;)
        {
            cin >> Array[length];
            length++;
            if (getchar() == '
    ')
            {
                break;
            }
        }
        sumOfArray = Array[0];
        for (i = 1; i < length; i++)
        {
            sum = max(sum, sumOfArray);
            sumOfArray = max((sumOfArray+Array[i]), Array[i]);
    
        }
        sumOfArray = max(sum, sumOfArray);
        cout << "这个整数数组的子数组之和的最大值为:" << sumOfArray << endl;
        return 0;
    }
    int max(int A, int B)
    {
        
        if (A > B)
        {
            return A;
        }
        else
        {
            return B;
        }
    }
    

     http://images2015.cnblogs.com/blog/900338/201603/900338-20160326150201558-1906876203.png

  • 相关阅读:
    指针
    基本数据类型和string类型的转换
    golang的数据类型之基本数据类型的默认值和转换
    golang的数据类型之字符串类型
    golang的数据类型之布尔类型
    windows pyspider WEB显示框太小解决方法
    MYSQL的全局变量和会话变量
    php 日期计算 总结
    使用 PHPMailer 发送邮件
    MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/5326458.html
Copyright © 2011-2022 走看看