最大子列和问题

//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. Linux第二周作业

    通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 1.进入vi编写C语言程序代码,首先必须输入命令vi main,c,其中main.c是文件名. 紧接着按esc键退出编辑状态,再输入一个 ...

  2. Win10系列:VC++ Direct3D开发基础1

    在介绍如何使用Direct3D项目模版来绘制立体图形之前,首先为读者介绍在Direct3D应用程序开发过程中涉及到的一些常用概念. (1)资源 资源是指可以被Direct3D图形管线所访问的内存空间, ...

  3. C++解析三

    类的构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行.构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void.构造函数可用于为某些成员变量设置初始 ...

  4. 基于 Dropbear & Zlib 搭建轻量级的ssh server

    [目的] 移植dropbear & zlib 在AM335X开发板上搭建轻量级的ssh server [环境] 1.  Ubuntu 16.04发行版 2.  MC183平台 3.  交叉编译 ...

  5. Unity中UGUI之Canvas属性解读版本一

    Canvas的基本属性 1.Canvas Scaler组件 : Canvas Scaler组件用于设置处于不同组件下Canvas画布中的元素的缩放模式. Ui Scaler Mode : 设置UI的缩 ...

  6. html页面标题增加图标方法

    有些网站的网页标题部分有图标,很带感.方法很简单: 在<head></head>部分增加下列一行代码即可. <link rel="shortcut icon&q ...

  7. OPENWRT安装配置指南之 17.01.4 LEDE

    简介 这个东西,需要看简介的就不要看下去了. 下面已刚刷进去,路由IP地址为192.168.1.1为例开始配置. 浏览器访问192.168.1.1,无密码. 一:配置上网 不管你是什么方式上网,请根据 ...

  8. 7.4 C++标准模板库(STL)的概念

    参考:http://www.weixueyuan.net/view/6401.html 总结:  标准模板库为C++提供了完善的数据结构及算法. 标准模板库包括三部分:容器.算法和迭代器. 容器是对象 ...

  9. 用FPGA对ASIC进行原型验证的过程(转)

    用FPGA对ASIC进行原型验证的过程   reference:http://xilinx.eetrend.com/d6-xilinx/article/2018-10/13736.html     鉴 ...

  10. WinPcap是用于网络封包抓取的一套工具

    WinPcap是用于网络封包抓取的一套工具,可适用于32位的操作平台上解析网络封包,包含了核心的封包过滤,一个底层动态链接库,和一个高层系统函数库,及可用来直接存取封包的应用程序界面. Winpcap ...