算法提高 (一)

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了算法提高 (一)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、最大连续子段和 / 和最大子序列

资源限制
  时间限制:1.0s   内存限制:256.0MB
问题描述
  给出一个长为n的数列,a1,a2,……,an,求和最大的连续子序列,即找到一对(i,j),i<=j,使ai+ai+1+……+aj的和最大,输出这个和
输入格式
  第一行为正整数n  第二行n个用空格分开的整数  表示a1,a2,……,an
输出格式
  一个整数,表示最大连续子序列的和
样例输入
  3  -1 -2 -3
样例输出
  -1
数据规模和约定
  1<=n<=10^5,-10^5<=ai<=10^5
C++实现(动态规划)
#include<iostream>
#include<cmath>
#include<string>
#include<vector>
#include<math.h>
#include<set>
#include<map>
#include<algorithm>
using namespace std;

int Maximum_subsegment_sum(int n,int *a)
{
    int i, sum=-999999,temp=-9999999;
    for (i = 0; i < n; i++)
    {
        if (temp > 0)
        {
            temp += a[i];
        }
        else {
            temp = a[i];
        }
        if (temp > sum)
        {
            sum = temp;
        }
        
    }
    return sum;
}
int main()
{
    int i, * a, n;
    cin >> n;
    a = new int[n];
    for (i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    cout << Maximum_subsegment_sum(n, a) << endl;   delete [] a;
    return 0;
}

 待补……

脚本宝典总结

以上是脚本宝典为你收集整理的算法提高 (一)全部内容,希望文章能够帮你解决算法提高 (一)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: