【PTA数据结构 | C语言版】连续子序列最大和

PTA 数据结构7-4 最长连续递增子序列 (20分) ## C++ 文章目录PTA 数据结构7-4 最长连续递增子序列 (20分) ## C++ PTA 数据结构7-4 最长连续递增子序列 (20分) ## C++ (蒟蒻给各位orz orz,萌萌萌萌萌萌萌萌萌萌萌萌新一个,大佬勿喷,orz) 问题: 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤10^​5);第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中 阅读详情

本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

题目

给定 n 个整数组成的序列 { a1 ,a2 ,⋯,an },“连续子序列”被定义为 { ai ,ai+1 ,⋯,aj },其中 1≤i≤j≤n。“连续子序列最大和”则被定义为所有连续子序列元素的和中最大者。例如给定序列 { -2, 11, -4, 13, -5, -2 },其连续子序列 { 11, -4, 13 } 有最大的和 20。请编写程序,计算给定整数序列的连续子序列最大和。

本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:

数据 0~6:测试基本正确性;
数据 7:10^3 个随机整数;
数据 8:10^4 个随机整数;
数据 9:10^5 个随机整数。

输入格式:
输入第一行给出正整数 n (≤10^5 );第二行给出 n 个整数,绝对值均不超过 100,其间以空格分隔。

输出格式:
在第一行中输出连续子序列最大和,第二行输出该子序列首尾的数组下标(从 0 开始),以 1 个空格分隔。若解不唯一,则输出最小的数组下标(如样例所示)。
注意:如果序列中所有整数皆为零或负数,则取空子列的结果是最大的,为 0;此时空子序列数组首尾的下标均为 -1。

输入样例:
10
-10 2 2 3 4 -5 -23 4 7 -21

输出样例:
11
1 4

代码

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[100000];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int current_sum = 0;  // 当前子序列的和
    int max_sum = 0;      // 全局最大子序列和
    int start = -1;       // 最大子序列起始下标
    int end = -1;         // 最大子序列结束下标
    int temp_start = 0;   // 当前候选子序列的起始下标
    
    // 标记序列中是否存在正数,用于处理全非正数的情况
    int has_positive = 0;  

    // 遍历数组,动态计算最大子序列和
    for (int i = 0; i < n; i++) {
        if (arr[i] > 0) has_positive = 1;  // 存在正数则标记为真
        
        // 如果当前子序列和为负,重置为0并更新候选起始位置
        if (current_sum < 0) {
            current_sum = 0;
            temp_start = i;  // 从当前位置开始新的子序列
        }
        
        current_sum += arr[i];  // 累加当前元素
        
        // 当新的子序列和更大时,更新全局最优解
        if (current_sum > max_sum) {
            max_sum = current_sum;
            start = temp_start;
            end = i;
        }
    }
    
    // 处理全非正数的特殊情况
    if (!has_positive) {
        printf("0\n-1 -1\n");
    } else {
        printf("%d\n%d %d\n", max_sum, start, end);
    }
    
    return 0;
}
控制科学与工程(自动化)保研经验【1】——预备篇 个人情况 学校:中末流211 专业:自动化(学科评估B-) 年份:2019 排名:4/128 绩点:4.16/5 竞赛:三个国二(包括数模国赛美赛)、两个省一(机器人、电子设计竞赛) 【本科期间竞赛做的比较多,是我的一大亮点,可以在筛简历这关适当弥补专业排名的不足】 科研:一个校级的大创项目(水) 夏令营报名:中科大科学岛、中科大本部、自动化所、沈自所、北航(仪器17系)、山大、浙江大学、南开、同... 阅读详情

相关推荐

VS2015+Qt+OpenCV+open62541开发过程(05_VS2015中使用OPCUA open62541通过Kepware读写PLC数据)

此外还需要所需lib包:WS2_32.Lib(opcua通讯用到的库,opcua使用socket通讯,需使用此库),添加#pragma comment(lib,"ws2_32.lib") 语句,有的文章说需要添加ws2_32.lib文件或ws2_32.dll到项目资源中,貌似影响不大。2.在VS中选择x64平台会报错,选择x86平台可以用,应该是ws2_32.lib相关的库不支持64位,目前没有解决,继续后面的实验,看看用Qt后是否可以解决。6.VS中建立的变量,与读取的OPC点数据类型注意对应。

zzh17的博客 1862

算法探究1--最大子列和问题

算法二: #include<iostream> using namespace std; int MaxSubseqSum2(int A[],int N) { int ThisSum = 0,MaxSum = 0; int i,j; for(i = 0;i < N;++i) { ThisSum = 0; for(j = i;j < N;++j) { ThisSum += A[j];

qq_43655213的博客 479

STM32L433使用DSP库配置过程

STM32L433中有FPU,在使用中为了使用其中的部分函数,需要对其进行配置。     配置成功后做些总结,留待后续复习备忘,同时也希望有朋友像我一样使用DSP库配置时少走弯路,留作交流。

在在在的博客 4550

2021-03-08

最大和连续子序列问题 请分别用暴力穷举法(3层循环),优化穷举法(2层循环),问题转化—等效子问题求解的动态规划法(1层循环),分治法(递归求解)这4种不同的思路(即算法思想)实现问题求解。 题目描述: 给定一个整数数组{A1,A2,…,An},连续子序列和的定义为: SubSum(i,j)=Ai+Ai+1+…+Aj-1+Aj 试求解输入数组的连续子序列和的最大值。如果所有的整数都是负数,那么最大连续子数列为0。 如有一个数组{1, -5, 8, 3, -4, 15, -8},则查...

weixin_46840095的博客 1241

ubuntu24.04+RTX5090D 显卡驱动安装

本文详细介绍了在Ubuntu系统中更新内核、安装NVIDIA驱动的步骤。首先,通过mainline工具安装新版内核,并确保GCC版本兼容。接着,在无桌面环境下配置TTY模式,解决中文显示问题。然后,禁用默认的nouveau驱动,安装NVIDIA驱动,并选择开源驱动以避免黑屏问题。最后,重新启用图形界面,并通过测试软件验证显卡功能。整个过程涵盖了内核更新、驱动安装、TTY配置及图形界面恢复等多个关键步骤,适合需要手动配置NVIDIA驱动的用户参考。

妖米的博客 4676

Pytorch的一小步,昇腾芯片的一大步

相信在AI圈的人多多少少都看到了最近的信息:PyTorch最新2.1版本宣布支持华为昇腾芯片!

机器学习-深度学习-图像处理-opencv-段子 5242

最大连续子序列之和----并求出序列的起始下标

这是当时我面去哪儿时候面试官让写的代码题,算是最大连续子序列之和的变形吧,当时没写出来~~还是自己太菜! #include <iostream> #include <algorithm> #include <string> #include <vector> #include <stack> #include <...

IT_Bonnie的博客 1027

随机森林遥感反演详细教程

通过这篇文章,我们展示了如何使用Python对筛选后的影响因子进行随机森林建模,并应用于遥感数据反演森林生物量的任务。该流程不仅可以提高预测精度,还能有效处理大规模的遥感数据,为生态监测和森林管理提供重要支持。

热爱分享,热爱记录 2952

给定N个整数序列{A1,A2,A3,...,An},求出子序列(例:Ai-Aj,必须是连续的)中的最大值

题目:给定N个整数序列{A1,A2,A3,...,An},求出子序列(例:Ai-Aj,必须是连续的)中的最大值 下面给出此题的四种解决办法,且时间复杂度依次增加。 方法一 public int maxSubsequenceSum4(int[] list, int n){ int thisSum = 0;//当前子序列和 int maxSum = 0;//目前最大子序列和 for (int i = 0; i < n; i++){ .

Aphadite的博客 8254

HFSS实战项目——高带外抑制特性SIW带通滤波器

本文对单级滤波器和双级滤波器的设计、工作原理及仿真结果进行了详细分析,并验证了双级SIW带通滤波器在性能方面的优越性,为微波通信系统中滤波器的设计和应用提供了重要参考。

2401_87464239的博客 1816

【ComfyUI】FluxKontext 身形调优与体态增强

AI身形调优与体态增强解决方案 该工作流通过Flux系列模型实现人物体态的智能化增强,主要特点包括: 采用UNet主体模型+双文本编码器+身形增强LoRA的架构组合 通过ReferenceLatent保持原始姿态的同时强化胸腰臀比例 完整工作流包含图像加载、文本编码、潜空间映射等8个核心节点 支持自动化的前后效果对比展示 应用优势: 保持人物自然姿态的前提下实现局部强化 支持通过Prompt精确控制增强方向 适用于摄影后期、角色美化等创作场景 输出效果稳定且风格统一 使用方

Mr数据杨 1300

最大连续子序列之和练习最大m子段和

/* Name: 最大m子段和问题 Author: 巧若拙 Description: 最大m子段和问题 给定由 n个整数(可能为负整数)组成的序列a1,a2,a3,……,an,以及一个正整数 m,要求确定序列 a1,a2,a3,……,an的 m个不相交子段, 使这m个子段的总和达到最大,求出最大和。 输入: 每个测试用例将以两个整数m和n开始, 紧随其后的是n个整数a1,

QiaoRuoZhuo的专栏 3275

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

PTA-数据结构 编程题01-复杂度2 Maximum Subsequence Sum

PTA-数据结构 编程题01-复杂度2 Maximum Subsequence Sum Now you are supposed to find the largest sum, together with the first and the last numbers of the maximum subsequence. Input Specification: Each input file...

qq_43683133的博客 298

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

PTA-数据结构 编程题01-最大子列和问题

PTA-数据结构 编程题01-最大子列和问题 本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下: 数据1:与样例等价,测试基本正确性; 数据2:102个随机整数; 数据3:103个随机整数; 数据4:104个随机整数; 数据5:105个随机整数; 输入格式: 输入第1行给出正整数K (≤100000);第2行给出K个整数,其间以空格分隔。 输出格式: 在一行中输出...

qq_43683133的博客 328

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PTA 甲级 1007

1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N​1​​, N​2​​, …, N​K​​ }. A continuous subsequence is defined to be { N​i​​, N​i+1​​, …, N​j​​ } where 1≤i≤j≤K. The Maximum Subsequ...

fallingskies 192

PTA1007 Maximum Subsequence Sum

数据结构第一周编程作业Maximum Subsequence Sum大三狗,趁着寒假有时间重学数据结构,心塞塞的,姥姥说这是2004年浙江大学计算机专业考研复试真题,要求略高,选做。其实也不难,是本次课最后讲到的算法的改造,也只是小改。代码如下include"stdio.h" int main(int argc, char const *argv[]) { int a[100000];

Swan的博客 464

【数据结构练习】1.最大子列问题

后面会不定期把通过的PTA源码搬到博客上,记录自己学习数据结构的历程,我是数据结构爱好者~一开始一直考虑负数的情况想直接写进子函数里,后来干脆直接写在main里作为特例,总之写的有点乱。 题目来自 浙江大学数据结构MOOC PTA 01-复杂度2 Maximum Subsequence Sum(25 分) Given a sequence of K integer { N​1, N2, …

幻想郷こうまかん 337

浙大网课数据结构PTA 01-复杂度2 Maximum Subsequence Sum (25 分)

Given a sequence of K integers { N ​1 ​​ , N ​2 ​​ , …, N ​K ​​ }. A continuous subsequence is defined to be { N ​i ​​ , N ​i+1 ​​ , …, N ​j ​​ } where 1≤i≤j≤K. The Maximum Subsequence is the contin...

qq_42632840的博客 290

PTA数据结构-01-复杂度2 Maximum Subsequence Sum

一、题目 Given a sequence ofKintegers {N​1​​,N​2​​, ...,N​K​​}. A continuous subsequence is defined to be {N​i​​,N​i+1​​, ...,N​j​​} where1≤i≤j≤K. The Maximum Subsequence is the continuous sub...

hdu_ch的博客 176

PTA刷题记录

9.8号考试,需要刷完155道题! 记录不会做的题 & 学到的算法 & 一些比较trick的技巧 8.13 1013 Battle Over Cities 题目大意:n个城市,m条道路,k个询问,每次询问时有一个城市被敌军占领,不可通过,问此时需要修几条路可以保证剩余城市彼此之间可达。 用并查集做超时了… ...

Gloria971111的博客 874

2020-09-25

7-4 最长连续递增子序列 (20分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。

qq_45858376的博客 352

PTA02-复杂度2 Maximum Subsequence Sum (25 分)

Given a sequence of K integers { N​1​​, N​2​​, …, N​K​​ }. A continuous subsequence is defined to be { N​i​​, N​i+1​​, …, N​j​​ } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence w...

weixin_43725617的博客 187

Maximum Subsequence Sum(c++)

PTA数据结构 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录题目**Output Specification:** For each test case, output in one line the largest sum, together with the first and the last numbers of the maximum s

cai_est的博客 2750

01-复杂度2 Maximum Subsequence Sum (25 分) (C语言)

PTA数据结构与算法题目集(中文) 01-复杂度2 Maximum Subsequence Sum\text{Maximum Subsequence Sum}Maximum Subsequence Sum (25 分)二、题解c代码 ) 01-复杂度2 Maximum Subsequence Sum\text{Maximum Subsequence Sum}Maximum Subsequence Sum (25 分) Given

信处的博客 218

PTA数据结构求最大子列和且输出子列首尾整数-----动态规划

动态规划方程:dp[i]=dp[i-1]+A[i]; 边界条件dp[0]=A[0] #include &lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; #include&lt;math.h&gt; using namespace std; #define Max 10000 int A[Max...

loveAC233的博客 331

pta最长连续递增子序列C语言,PTA 7-1 最长连续递增子序列 (12 分)

给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。input输入第1行给出正整数n(≤10​5​​);第2行给出n个整数,其间以空格分隔。output在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。si151 9 2 5 7 3 4 6 8 0 ...

weixin_36140400的博客 936
上一篇: 【PTA数据结构 | C语言版】计算1~n与1~m每一项相互乘积的和
下一篇: 【PTA数据结构 | C语言版】输出 1 ~ n
秋说
秋说 优质创作者: 编程框架、信息安全技术领域 优质创作者: 编程框架、信息安全技术领域
博客等级 码龄4年 3万+粉丝 1906原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值