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 ...
随机推荐
- python Django html 一对多数据实例 模态对话框添加数据
- SQL索引的优缺点
--索引的优点 /* (1)创建唯一索引,保证数据库表中每一行数据的唯一性 (2)大大加速数据的检索速度,这也是创建索引的最主要的原因 (3)加速表和表至今的连接,特别是在实现数据的参考完整性特别有意 ...
- 自定义TableViewCell 的方式实现自定义TableView(带源码)
转载于:http://www.cnblogs.com/macroxu-1982/archive/2012/08/30/2664121.html 实现的效果 实现过程 Step One 创建 自定义Ta ...
- BZOJ4675: 点对游戏
传送门 考虑每一对幸运点对的贡献,假设有 \(v\) 对 一共可以选择 \(x\) 个点,总共 \(n\) 个点 那么答案就是 \[v\times\frac{A_{n-2}^{x-2}x(x-1)}{ ...
- github上手实践教程
简介: SSH公私钥的使用 github的使用 git 工具的基本使用 基本步骤: 一.github的使用 1.github账号的创建[官网一步一步创建就行了,这一步骤省略] 2.创建远程仓库: 创建 ...
- mysql 存储引擎 配置文件my.ini 的配置方式
如果想使修改后的参数生效,须重新启动MySQL服务器. #存储引擎设置 default-storage-engine = INNODB
- CCSUOJ评测系统
队名: BUGG 团队信息与分工: 开发: 周斌 B20150304221 舒 溢 B20150304209 测试: 许嘉荣 B20150304213 唐 浩 B20150304316 Product ...
- Linux学习之CentOS(三)----将Cent0S 7的网卡名称eno16777736改为eth0
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- jquery validation表单验证插件。
这个是刚学的,觉得对以后挺有用的,就想把自己所学的分享一下. 校验规则: (1)required:true 必输字段 (2)number:true 必须输入合法的数字(负数,小数) (3)digits ...
- scrapy实战--爬取最新美剧
现在写一个利用scrapy爬虫框架爬取最新美剧的项目. 准备工作: 目标地址:http://www.meijutt.com/new100.html 爬取项目:美剧名称.状态.电视台.更新时间 1.创建 ...