最大子列和问题

//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. Win10系列:UWP界面布局基础12

    画刷 画刷(Brush)用于为图形元素填充颜色.在XAML中,画刷有许多属性,其中较常使用的是Fill属性和Stroke属性,Fill用于填充图形的背景色,而Stroke用于设置图形的线条颜色. 在实 ...

  2. .NetCore发布到Centos docker

    将.netcore mvc项目发布到centos7的docker中.环境 vmware14+Centos7+docker-ce 1.使用vs将.netcoremvc项目发布到本地,修改发布后的目录 名 ...

  3. day19-python的正则表达式2

    正则对象的findall方法 findall(string[, pos[, endpos]])  搜索string,以列表形式返回全部能匹配的子串. import re p1 = re.compile ...

  4. Jdbc连接Oracle12C集群环境

    jdbc.url=jdbc:Oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.31.0. ...

  5. Date与时间戳的相互转换(Java)

      1.Date对象转换为时间戳 Date date = new Date(); long times = date.getTime(); System.out.println(times); 效果如 ...

  6. ng-table

    需要的文件: angular.js ng-table.js ng-table.css bootrasp.css 注入依赖: var app = angular.module('app', [ 'ngT ...

  7. 《Python》hashlib模块、configparser模块、logging模块

    一.hashlib模块 Python的hashlib模块中提供了常见的摘要算法,如md5,sha1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的字符串(通 ...

  8. DevExpress WinForms使用教程:Diagram Control

    [DevExpress WinForms v18.2下载] DevExpress WinForms v18.2包含WinForms和WPF Diagram Controls的三个高要求功能:新的Dia ...

  9. nw.js的localStorage的物理储存位置

    前言 因为在做美团外卖商家端的nw.js壳子项目,需要保证在壳子里面使用localStorage的数据可以持久化保存. 发现nw可以保存,即使删除应用重写打包也可以保存,所以解决了这个需求,但是还是需 ...

  10. Spring学习三

    Spring注解来注入bean 在classpath中扫描组件 组件扫描,即componetscanning 利用注解来扫描的组件有  @Component  :基本注解,表示一个受Spring管理的 ...