最大子列和问题

//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. 在shell脚本里执行sudo 命令

      可以 : echo "yourpasswd" |sudo -S yourcommand 但是不安全,因为密码都显示在shell脚本里面了-_- 引自http://hi.baid ...

  2. learning ddr input clock frequency change condition

  3. 深入理解 Java 虚拟机——走近 Java

    1.1 - 概述 Java 总述:Java 不仅是一门编程语言,还是一个由一系列 计算机软件 和 规范 形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于 嵌入式 ...

  4. CSS多div放一行

    HTML代码 <body> <div class="right"></div> <div class="left"&g ...

  5. Java获取后台数据,动态生成多行多列复选框

    本例目标: 获取后台数据集合,将集合的某个字段,比如:姓名,以复选框形式显示在HTML页面 应用场景: 获取数据库的人员姓名,将其显示在页面,供多项选择 效果如下: 一.后台 查询数据库,返回List ...

  6. SQL-32 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分

    题目描述 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分CREATE TABLE `employees` ( `emp_no` in ...

  7. SQL-26 (二次分组)汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no、dept_name、其当前员工所有的title以及该类型title对应的数目count

    题目描述 汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no.dept_name.其当前员工所有的title以及该类型title对应的数目countCREATE TABLE ...

  8. ORA-02049: 超时: 分布式事务处理等待锁

    java.sql.SQLSyntaxErrorException: ORA-02049: 超时: 分布式事务处理等待锁 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BA ...

  9. SharePoint Framework 企业向导(四)

    博客地址:http://blog.csdn.net/FoxDave 接上一讲 嵌入JavaScript脚本 开发者常常使用的比较受欢迎的开发方式是嵌入JavaScript脚本,也叫JavaScri ...

  10. Final阶段第1周/共1周 Scrum立会报告+燃尽图 06

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2485] 版本控制:https://git.coding.net/liuyy08 ...