最大子列和问题

//O(N^3)
int MaxSubseqSum1(int A[],int N){
int ThisSum,MaxSum = ;
int i,j,k;
for(i=;i<N;i++){
for(j=i;j<N;j++)
ThisSum = ;
for(k=i;k<=j;k++)
ThisSum += A[k];
if(ThisSum > MaxSum){
MaxSum = ThisSum;
}
}
return MaxSum;
} //O(N^2)
int MaxSubseqSum2(int A[],int N){
int ThisSum,MaxSum = ;
int i,j,k;
for(i=;i<N;i++){
ThisSum = ;
for(j=i;j<N;j++)
ThisSum += A[j];
if(ThisSum > MaxSum){
MaxSum = ThisSum;
}
}
return MaxSum;
} //O(N*logN)——分治 //O(N)——在线处理
int MaxSubseqSum4(int A[],int N){
int ThisSum,MaxSum;
int i;
ThisSum = MaxSum = ;
for(i = ;i<N;i++){
ThisSum += A[i];
if(ThisSum>MaxSum)
MaxSum = ThisSum;
else if(ThisSum<)
ThisSum = ;
}
return MaxSum;
}

练习题:

#include <stdio.h>
#define MAXN 100000
void MaxSubseqSum(int A[],int N);
int main(){
int List[MAXN],N,i;
scanf("%d",&N);
for (i=;i<N;i++)
scanf("%d",&List[i]);
MaxSubseqSum(List,N);
return ;
} void MaxSubseqSum(int A[],int N){
int ThisSum,MaxSum;
int i,start,end,temp;
ThisSum = MaxSum = ;
start = end = temp = ;
for(i = ;i < N;i++){
ThisSum += A[i];
if(ThisSum > MaxSum){
start = temp;
end = i;
MaxSum = ThisSum;
}
else if(ThisSum < ){
temp = i+;
ThisSum = ;
}
}
if(MaxSum==) end = N-;
printf("%d %d %d",MaxSum,A[start],A[end]);
}

试点5:负数和0未通过

其他测点通过

#include <stdio.h>
#define MAXN 100000
void MaxSubseqSum(int A[],int N);
int main(){
int List[MAXN],N,i;
scanf("%d",&N);
for (i=;i<N;i++)
scanf("%d",&List[i]);
MaxSubseqSum(List,N);
return ;
} void MaxSubseqSum(int A[],int N){
int ThisSum,MaxSum;
int i,start,end,temp,flag;
ThisSum = MaxSum = ;
start = end = temp = flag = ;
for(i = ;i < N;i++){
ThisSum += A[i];
if(A[i]>=) flag = ;
if(ThisSum > MaxSum){
start = temp;
end = i;
MaxSum = ThisSum;
}
else if(ThisSum < ){
temp = i+;
ThisSum = ;
}
}
if(MaxSum==){
if(flag == ){
printf("0 %d %d",A[],A[N-]);
}
else{
printf("0 0 0");
}
}
else{
printf("%d %d %d",MaxSum,A[start],A[end]);
}
}

全部测点通过

这里有个坑,如果全为负数,输出第一个和最后一个元素,如果中间有个0,就要都输出0

还有一个坑就是要输出元素而不是元素下标,题目给的例子元素和下标正好相等,估计会坑不少人

c++——最大子列和的更多相关文章

  1. PAT复杂度_最大子列和问题、最大子列和变种

    01-复杂度1. 最大子列和问题 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j ...

  2. 最大子列和CT 01-复杂度2 Maximum Subsequence Sum

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  3. 01-复杂度1 最大子列和问题(剑指offer和PAT)

    01-复杂度1 最大子列和问题   (20分) 给定KK个整数组成的序列{ N​1​​, N​2​​, ..., N​K​​ },“连续子列”被定义为{ N​i​​, N​i+1​​, ..., N​ ...

  4. PAT A1007 Maximum Subsequence Sum (25 分)——最大子列和,动态规划

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  5. PATtest1.3:最大子列和

    题目源于:https://pintia.cn/problem-sets/16/problems/663 题目要求:输入一个数列,求其最大子列和. 问题反馈:1.部分C++代码不是很熟练 2.没有仔细读 ...

  6. PTA 最大子列和问题(10 分)

    最大子列和问题(10 分) 给定K个整数组成的序列{ N​1​​, N​2​​, ..., N​K​​ },“连续子列”被定义为{ N​i​​, N​i+1​​, ..., N​j​​ },其中 1≤ ...

  7. PTA 01-复杂度1 最大子列和问题 (20分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/709 5-1 最大子列和问题   (20分) 给定KK个整数组成的序列{ N_1N​1​ ...

  8. 01-最大子列和问题(java)

    问题描述:给定N个整数的序列{A1,A2,A3,…,An},求解子列和中最大的值. 这里我们给出{-2,11,-4,13,-5,-2}这样一个序列,正确的最大子列和为20 该题是在数据结构与算法中经常 ...

  9. Codeforces E. Weakness and Poorness(三分最大子列和)

    题目描述: E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes inp ...

随机推荐

  1. python-flask基础

    get请求: 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求. 传参:get请求传参是放在url中,并且是通过’?’的形式来指定key和value的. post ...

  2. MATLAB统计工具箱 转

    D:\Program Files\MATLAB\R2012b\toolbox\stats\stats MATLAB统计工具箱包括概率分布.方差分析.假设检验.分布检验.非参数检验.回归分析.判别分析. ...

  3. win10与centos7的双系统U盘安装(三:win10启动项的恢复)

    启动项的恢复比起前面两篇就简单多了,就是一个修改启动项的引导文件即可. 首先登陆超级管理员账户,也就是账号为root,密码为你在篇2设置的密码,注意linux系统下输入的密码不可见,小白容易误以为是b ...

  4. nginx+tomcat集群

    参考: 简单:http://blog.csdn.net/wang379275614/article/details/47778201 详细:http://www.jb51.net/article/77 ...

  5. HTML(五)选择器--伪类选择器

    HTML代码 <body> <a href="www.baidu.com">www.baidu.com</a> </body> CS ...

  6. Linux Hadoop集群搭建第二步:--------SSH免密登陆

    内容和Linux 搭建 Hadoop集群--Jdk配置相关联 三台虚拟机的操作 Linux SSH免密登陆: 参考网址:http://www.cnblogs.com/999-/p/6884861.ht ...

  7. mvc+struct1+struct2

    转一篇写得很棒的文章:https://my.oschina.net/win199176/blog/208171?p=7&temp=1495894148424 1.基于web开发中最原始的jsp ...

  8. 房间安排 (nyoj 168)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=168 分析:找到一天中需要最多的房间即可 #include<iostream> ...

  9. core1.1 升级到 2.0

    1.直接修改项目 1.1 改成 2.0 Startup 的修改 去除构造函数中下面的代码 var builder = new ConfigurationBuilder() .SetBasePath(e ...

  10. TLS反调试

    0x01 TLS反调试简介 TLS(Thread Local Storage)原本的目的是解决多线程程序中变量同步的问题.线程本身有独立于其他线程的栈空间,因此线程中的局部变量不用考虑同步问题.多线程 ...