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 ...
随机推荐
- CSS关于文本渲染的属性text-rendering
CSS关于文本渲染的属性text-rendering告诉渲染引擎工作时如何优化显示文本. 浏览器会在渲染速度.易读性(清晰度)和几何精度方面做一个权衡. 我们知道,SVG-可缩放矢量图形(Scalab ...
- css画一个提示框
用css画一个如下图的提示框: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- mysql + excel 校正线上数据
积分问题处理 1. 所有应补汇总 select driver_id, SUM(integral) from detail_score group by driver_id; 2. 原汇总积分 sele ...
- Git——远程操作详解
转载自:http://www.ruanyifeng.com/blog/2014/06/git_remote.html 作者: 阮一峰 日期: 2014年6月12日 Git是目前最流行的版本管理系统,学 ...
- C#基础 继承和实例化
有代码如下,问输出的是多少: class Program { static void Main(string[] args) { B b = new B(); Console.ReadKey(); } ...
- 浏览器根对象window之操作方法
1.1 不常用 alert:带有一条指定消息和一个OK按钮的警告框. confirm:带有指定消息和OK及取消按钮的对话框. prompt:可提示用户进行输入的对话框. print:打印网页. ope ...
- python学习笔记之——python模块
1.python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...
- Flutter:Slivers大家族,让滑动视图的组合变得很简单!
今天呢,我小拉面主要想给大家讲一讲Flutter中的Slivers大家族的使用场景和方法.开发过列表布局的同学们应该对Slivers系列的控件不陌生,或多或少都用过这个库中的控件,来解决复杂的滑动嵌 ...
- Jupyter notebook 使用多个Conda 环境
conda install nb_conda_kernels
- lua5.3+luasocket
今天安装了luasocket,遇到了很多错误,百度并没有什么针对lua5.3的版本安装luasocket的文章,在这里记录一下. 1.下载lua5.3 下载到了lua-5.3.5.tar.gz版本的l ...