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

题目要求如下:

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

 

解题思路:从第二项开始到数组末尾,比较该项与前一项相加后值是否变大,若变大,则将当前项的值置为他与前一项的和,否的话就不变。这样处理结束后,第n项的值,就是原数组前n项中的最大连续子数组的和,最后只要取处理完毕后的数组中最大的一项即可。

C++代码如下:

#include<iostream>
using namespace std;
void main()
{
    int s[100];
    int n,max;
    //输入数组长度
    cin >> n;
    for (int i = 0;i < n;i++)
    {
        //输入数组元素
        cin>> s[i];
    }

    //max初始化为s[0]
    max = s[0];
    for (int i = 1;i < n;i++)
    {
        //比较与前一项相加值是否会增大
        if ((s[i] + s[i - 1] )> s[i])
        {

            s[i] = s[i] + s[i - 1];

        }
        //更新max的值
        if (max < s[i])max = s[i];
    }
    cout << "最连续大子集和:" << max << endl;

}

  

 

原文链接: https://www.cnblogs.com/liuleliu/p/12362928.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/331872

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午6:14
下一篇 2023年3月1日 下午6:15

相关推荐