nyoj44-子串和(子串和最大问题)(代码片段)

GetcharZp GetcharZp     2022-11-13     274

关键词:

44-子串和


内存限制:64MB 时间限制:5000ms Special Judge: No
accepted:12 submit:48

题目描述:

给定一整型数列a1,a2...,an,找出连续非空子串ax,ax+1,...,ay,使得该子序列的和最大,其中,1<=x<=y<=n。

输入描述:

第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的一行里有n个整数I(-100=<I<=100),表示数列中的所有元素。(0<n<=1000000)

输出描述:

对于每组测试数据输出和最大的连续子串的和。

样例输入:

1
5
1 2 -1 3 -2

样例输出:

5

提示:

输入数据很多,推荐使用scanf进行输入
 
分析:
  只有对正数才进行累加,但每一步都要判断该值与原先最大值间的最大值
 
步骤:
  ①、判断第i-1个数如果大于0,就类加上第i个数(保证第i位通过前驱、或本身能够达到最大值)
  ②、判断原先my_max 与 现在第i位数字的大小,保留大的数在my_max中
 
核心代码:
1 scanf("%d", &A[0]);
2 for(int i = 1; i < n; ++ i)
3 
4     if(A[i-1] > 0) A[i] += A[i-1]; // 保证第i位的数最大
5     my_max = max(my_max, A[i]);
6 

C/C++代码实现(AC):

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <map>
#include <queue>

using namespace std;
const int MAXN = 1000*1010;
int A[MAXN];

int main()

    int t;
    scanf("%d", &t);
    while(t --)
    
        int n, my_max;
        scanf("%d%d", &n, &A[0]);
        my_max = A[0];
        for(int i = 1; i < n; ++ i)
        
            scanf("%d", &A[i]);
            if(A[i-1] > 0) // 保证第i位的数最大
                A[i] += A[i-1];
            my_max = max(my_max, A[i]);
        
        printf("%d\n", my_max);
    
    return 0;

 

nyoj44字串和(最大字串和线性dp)(代码片段)

题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=44子串和时间限制:5000ms | 内存限制:65535KB难度:3 描述给定一整型数列a1,a2...,an,找出连续非空子串ax,ax+1,...,ay,使得该子序列的和最大,其中,1<=x<=y<=n。&nbs... 查看详情

最大子串和问题最小子串覆盖问题(代码片段)

目录最大子串和问题题目思路一 思路二最小子串覆盖问题题目思路一 最大子串和问题题目给定一个整数数组,求出数组中最大的子串和。例如: 2,-1,3,5,6,-3最大子串和为: 2-1+3+5+6=15 思路一     采用暴力循环... 查看详情

nyoj44-子串和-(dp||思维)(代码片段)

题目描述:给定一整型数列a1,a2...,an,找出连续非空子串ax,ax+1,...,ay,使得该子序列的和最大,其中,1<=x<=y<=n。输入描述:第一行是一个整数N(N<=10)表示测试数据的组数)每组测试数据的第一行是一个整数n表示序列中共有n... 查看详情

leetcode53.最大子串和(简单)76.最小子串覆盖(困难)3.最长子串不重复问题(中等)(代码片段)

目录最大子串和问题(简单)题目思路一 思路二最小子串覆盖问题(困难)题目思路一 思路二最长子串不重复问题(中等)题目思路一思路二最大子串和问题(简单)题目给定一个整数数组,求出数组中连续的最大的子串和。例如: 2... 查看详情

leetcode53.最大子串和(简单)76.最小子串覆盖(困难)3.最长子串不重复问题(中等)(代码片段)

目录最大子串和问题(简单)题目思路一 思路二最小子串覆盖问题(困难)题目思路一 思路二最长子串不重复问题(中等)题目思路一思路二最大子串和问题(简单)题目给定一个整数数组,求出数组中连续的最大的子串和。例如: 2... 查看详情

leetcode53.最大子串和(简单)76.最小子串覆盖(困难)3.最长子串不重复问题(中等)(代码片段)

目录最大子串和问题(简单)题目思路一 思路二最小子串覆盖问题(困难)题目思路一 思路二最长子串不重复问题(中等)题目思路一思路二最大子串和问题(简单)题目给定一个整数数组,求出数组中连续的最大的子串和。例如: 2... 查看详情

最大子串和(代码片段)

1007 MaximumSubsequenceSum(25 分)Givenasequenceof K integers N?1??, N?2??,..., N?K?? .Acontinuoussubsequenceisdefinedtobe N?i??, N?i+1??,..., N 查看详情

leetcode53.最大子串和(简单)76.最小子串覆盖(困难)3.最长子串不重复问题(中等)(代码片段)

目录最大子串和问题(简单)题目思路一 思路二最小子串覆盖问题(困难)题目思路一 思路二最长子串不重复问题(中等)题目思路一思路二最大子串和问题(简单)题目给定一个整数数组,求出数组中连续的最大的子串和。例如: 2... 查看详情

leetcode53最大子串和(代码片段)

给定数列numsdp[i]——以nums[i]为结尾的子串的最大和***开始:dp[0]=nums[0]状态转移:dp[i]=max(dp[i-1]+nums[i],nums[i]) classSolutionpublic:staticconstintINF=0x7fffffff;intmaxSubArray(vector<int>&nums 查看详情

南阳理工--44子串和

描述给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。 输入第一行是一个整数N(N<=10)表示测试数据的组数)每组测试数据的第一行是一个整数n表示序列中共有n个... 查看详情

动态规划——最大子串和

如  {-4,11,-2,13,-7,-3,12}的最大子段和为22程序代码:#include<iostream>  #define MAXSIZE 100  using namespace std;  int MaxSum(int[],int);  查看详情

算法提升——中心扩散法(最长回文子串和回文子串)(代码片段)

中心扩散法常用来解决回文子串的问题,如最长回文子串和回文子串的问题。最长回文子串给你一个字符串s,找到s中最长的回文子串解题思路:从每一个位置确定回文子串中心点(回文子串向两边扩散的起始位... 查看详情

求数组连续最大子串和

importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannersr=newScanner(System.in);while(sr.hasNext()){Stringstr=sr.nextLine();String[]strs=str.split("");int[]num=newint[strs.length] 查看详情

子串和

子串和时间限制:5000 ms | 内存限制:65535 KB难度:3 描述给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。 输入第一行是一个整数N(N<=10)表示测... 查看详情

子串和

子串和时间限制:5000ms | 内存限制:65535KB难度:3描写叙述给定一整型数列{a1,a2...,an}。找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大。当中,1<=x<=y<=n。输入第一行是一个整数N(N<=10)表示測试数据的组数... 查看详情

子串和

子串和时间限制:5000ms | 内存限制:65535KB难度:3描述给定一整型数列a1,a2...,an,找出连续非空子串ax,ax+1,...,ay,使得该子序列的和最大,其中,1<=x<=y<=n。输入第一行是一个整数N(N<... 查看详情

动态规划:最大子串和(代码片段)

  题目链接(点击直达) 问题B:X额宝时间限制: 1 Sec  内存限制: 256MB提交: 46  解决: 33[状态][提交][命题人:外部导入]题目描述【理财有风险,投资需谨慎】Alice计划将自己的所有红包拿去投... 查看详情

hdu1024最大m子串和

1024题意:给一个长度为n的序列,找出m个不相交子串的和的最大值思路:dp[i][j]表示取第j个数,并且前j个数分成i个区间的最大值,状态转移方程为dp[i][j]=max(dp[i][j-1]+a[j],dp[i-1][k]+a[j])(k=i-1ii+1...j-1),dp[i][j-1]+a[j]表示前j-1个分成i个... 查看详情