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 ...
随机推荐
- set集合去重机制
- 利用c#自带的类对文件进行压缩和解压处理
在做网络传输文件的小例子的时候,当传输的文件比较大的时候,我们通常都是将文件经过压缩之后才进行传输,以前都是利用第三方插件来对文件进行压缩的,但是现在我发现了c#自带的类库也能够实现文件的压缩,实际上 ...
- 纯web实现游记类手机端应用
初衷 当初的一个学习框架项目,采用sui框架实现的一套手机端页面.今天清理github的时候重新整理了一下,因为设计的确实不错嘛,拿出来大家一起学习...哈哈 说明 采用sui框架 纯html/css ...
- 清除浮动以及:after元素
http://www.iyunlu.com/demo/enclosing-float-and-clearing-float/index.html 以上这篇示意图把清除浮动的几种方法讲的非常清楚了,其中 ...
- OneNet平台初探成功
1.经过半个月的研究,终于成功对接OneNet平台,实现远程控制LED灯的亮灭 2.在调试的过程中也遇到了很多问题,做一下总结 3.硬件:STM32F103C8T6的最小系统板,ESP8266-WiF ...
- linux 网络命令ping、关闭防火墙、ifconfig、ip addr、setup、nmtui、write、wall、mail
ping /bin/ping语法:ping [选项] IP地址 选项:-c 指定发送次数功能描述:测试网络连通性 ping -c 4 192.168.1.101 关闭防火墙systemctl stop ...
- 在Linux上利用core dump和GDB调试
段错误(segfault) "段错误"是程序试图操作不允许访问或试图访问的不允许内存的情况.可能导致段错误的原因主要有: 1.试图解引用空指针(你不允许访问内存地址0) 2.试图解 ...
- 福大软工1816:Beta(5/7)
Beta 冲刺 (5/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 组织会议 确定统一界面wxpy.db之 ...
- 8 tensorflow修改tensor张量矩阵的某一列
1.tensorflow的数据流图限制了它的tensor是只读属性,因此对于一个Tensor(张量)形式的矩阵,想修改特定位置的元素,比较困难. 2.我要做的是将所有的操作定义为符号形式的操作.也就是 ...
- JVM知识(四):GC配置参数
JVM配置参数分为三类参数:跟踪参数.堆分配参数.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 跟踪参数 跟踪参数用户跟踪监控JVM,往往被开发人员用于JVM调优以及故 ...