PATtest1.3:最大子列和
题目源于: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:最大子列和的更多相关文章
- PAT复杂度_最大子列和问题、最大子列和变种
01-复杂度1. 最大子列和问题 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j ...
- 最大子列和CT 01-复杂度2 Maximum Subsequence Sum
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- 01-复杂度1 最大子列和问题(剑指offer和PAT)
01-复杂度1 最大子列和问题 (20分) 给定KK个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., N ...
- c++——最大子列和
最大子列和问题 //O(N^3) int MaxSubseqSum1(int A[],int N){ ; int i,j,k; ;i<N;i++){ for(j=i;j<N;j++) Th ...
- PAT A1007 Maximum Subsequence Sum (25 分)——最大子列和,动态规划
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- PTA 最大子列和问题(10 分)
最大子列和问题(10 分) 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤ ...
- PTA 01-复杂度1 最大子列和问题 (20分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/709 5-1 最大子列和问题 (20分) 给定KK个整数组成的序列{ N_1N1 ...
- 01-最大子列和问题(java)
问题描述:给定N个整数的序列{A1,A2,A3,…,An},求解子列和中最大的值. 这里我们给出{-2,11,-4,13,-5,-2}这样一个序列,正确的最大子列和为20 该题是在数据结构与算法中经常 ...
- Codeforces E. Weakness and Poorness(三分最大子列和)
题目描述: E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes inp ...
随机推荐
- 在php中怎么利用js把参数传递给弹窗
1.在php页面中经常用到把参数传递给弹窗页面,在弹窗页面中操作 2.两种方式,截图为一种 3.最常见的就是利用hideen隐藏域,点击按钮的时候把要传递的参数值传递给隐藏域,需要的时候在弹窗中获取. ...
- css3 3d正反面翻转
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- bae使用nodejs遇到的问题---‘Fix depends failed. Please check requirements.txt.’
今天尝试了百度开放云里面的nodejs云引擎,部署没有任何问题,修改文件后发现了发布不了,去查看发布设置发现了问题: Fix depends failed. Please check requirem ...
- LOJ#6271. 「长乐集训 2017 Day10」生成树求和 加强版
传送门 由于是边权三进制不进位的相加,那么可以考虑每一位的贡献 对于每一位,生成树的边权相当于是做模 \(3\) 意义下的加法 考虑最后每一种边权的生成树个数,这个可以直接用生成函数,在矩阵树求解的时 ...
- 浏览器根对象window之事件
1. [事件]动画 onanimationstart onanimationend onanimationiteration onwebkitanimationend onwebkitanimatio ...
- 将ArcGIS Server的JSON转化为SHP文件
# -*- coding: utf-8 -*- # -------------------------------------------------------------------------- ...
- oracle 中的角色
conn sys as sysdba;create role testrole;grant create session, create table, unlimited tablespace to ...
- mysql 日期时间类型
datetime timestamp year date time drop table test;create table test (dt datetime, ts timestamp, y ye ...
- linux安装memcached
一:为什么要使用memcached 瓶颈:互联网发展,特别在web2.0兴起之后,传统数据库开始出现瓶颈 1:对数据库的高并发读写 2:对海量数据库的处理(海量数据查找)memcache 是高性能的分 ...
- leveldb开篇
因为工作的需求,最近看了一些项目的源码,包括nginx.tair.leveldb,一直看了下来都没有写东西的习惯,虽然作了不少记录,但都是只有自己才能看懂的笔记. 好多次都说开始写blog,锻炼一下自 ...