题目源于:https://pintia.cn/problem-sets/16/problems/663

题目要求:输入一个数列,求其最大子列和。

问题反馈:1.部分C++代码不是很熟练

2.没有仔细读清楚题目,原文已经说过小于零的情况,不用过多的思考

解决方法:1.打印课上的常见代码,记忆背诵并默写

2.写题之前,先读题。多读英文的题,习惯英文读题

自己写的代码:

#include<stdio.h>
//using namespace std
#define MAXN 100000 void maxsub(int b[], int m){
int sumtem = , maxsum = -;
int c = , d = m-,begin=;
int j=;
for ( j = ; j<m; j++){
sumtem += b[j];
if (sumtem>maxsum){
maxsum = sumtem;
begin=c;
d = j;
}
else if (sumtem<)
{
sumtem = ;
c = j+; } }
int k=;
for(j = ; j<m; j++){
if(b[j]<) k++;
}
if(k==m){
maxsum=b[];
for(j = ; j<m; j++){
if(b[j]>=maxsum) {
maxsum=b[j];
begin=j;
d=j;
} } } printf(" sum:%d first:%d last: %d ", maxsum, b[begin], b[d]);
} int main(void){
int k;
scanf("%d", &k);
int a[MAXN] = { };
int i = ;
for (i = ; i<k; i++){
scanf("%d", &a[i]);
}
maxsub(a, k);
return ;
}

优秀的网页代码:

#include "stdafx.h"
#include<iostream>
#include <vector>
using namespace std; int main()
{
int N; //输入数列长度
cin >> N;
int * array = new int[N];
for (int i = ; i < N; i++) {
cin >> array[i];
}
//sum为子列和,MAX为最大子列和,first记录子列和的第一项,src为最大子列和的第一项,end为最大子列和的最后一项
int sum=,first=,src=N-,end=N-,max=-;
//动态规划
for (int i = ; i < N; i++) {
sum += array[i];
//当前子列和>最大子列和时修改MAX,即SUM>MAX时,将max = sum.
if (sum > max) {
max = sum;
src = first;
end = i;
}
//sum<0时重置sum,first
if (sum <) {
first = i + ;
sum = ;
}
}
if (max<) cout << << ' ' << array[] << ' ' << array[N - ];
else cout << max << ' ' << array[src] << ' ' << array[end];
delete[] array;
return ;
} ---------------------
作者:yzh1994414
来源:CSDN
原文:https://blog.csdn.net/yzh1994414/article/details/78070888
版权声明:本文为博主原创文章,转载请附上博文链接!

PATtest1.3:最大子列和的更多相关文章

  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. c++——最大子列和

    最大子列和问题 //O(N^3) int MaxSubseqSum1(int A[],int N){ ; int i,j,k; ;i<N;i++){ for(j=i;j<N;j++) Th ...

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

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

  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. Quiver快速入门

    Quiver快速入门 装载自:https://github.com/HappenApps/Quiver/wiki/Quiver%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8 ...

  2. java-单例详解

    java单例模式(Singleton)以及实现 一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. ...

  3. content_form.class.php文件不完整 解决方案

    玩phpcms的从多少会遇到这个问题,根据错误提示我们可以发现是由于content_form.class.php文件不完整导致的,网上有好多文章说是把这个文件用本地的替换掉就可 以了,但是只要一更新缓 ...

  4. 详解php常量const与define的区别和实例

    所谓常量是一个简单的标识符.在脚本执行期间该值不能改变.常量默认大小写敏感.通常常量标识符总是大写的.常量只能包含标量数据(boolean.integer.float和string).可以定义reso ...

  5. 关于WebSocket协议

    WebSocket是单个TCP连接上进行全双工通信的协议 在WebSocket的API中,客户端与服务器只需要进行一次握手就可以保持持久的连接,并可以双向传输数据 与HTTP不同的是,WebSocke ...

  6. 阿里云短信服务Java版

    短信服务管理平台 https://dysms.console.aliyun.com/dysms.htm java短信发送API    https://help.aliyun.com/document_ ...

  7. SpringBoot 之配置server 信息

    一.修改端口号 spring-boot 默认的端口号是8080,如需修改. 1.新建一个src/main/resources 文件夹 2.在这个文件夹下新建一个application.properti ...

  8. apache ftp server的简单入门(properties验证)

    Apache FTPServer:(开源) Apache FTPServer是一个100%纯Java的FTP服务器. 它的设计是基于现有的开放式协议的完整和便携式FTP服务器引擎解决方案.FTPSer ...

  9. npm用法及离线安装方法

    npm用法及离线安装方法 基本的用法 查看某个模块的全部信息,或者可以查看单个信息 npm info name npm info name version npm info name homepage ...

  10. C# Redis的操作

    Nuget添加StackExchange.Redis的引用 由于Redis封装类同时使用了Json,需要添加JSON.NET引用(Newtonsoft.Json) Redis封装类 /// <s ...