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

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

文章目录

    • 题目
    • 代码

题目

给定 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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/87949.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/87949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vrrp配置和原理

Vrrp配置和原理 文章目录Vrrp配置和原理概述物理与逻辑拓扑重点vrid虚拟路由器虚拟IP地址及虚拟MAC地址超时时间计算-MASTER_DOWNvip 管理员手动指定方法Master路由器Backup路由器PriorityVRRP报文格式VRRP状态机从Backup到masterVRRP协议状态二.优先级一样比较接口IPVRRP优先级…

可编辑59页PPT | 某大型集团人工智能数字化转型SAP解决方案

荐言摘要&#xff1a;某大型集团人工智能数字化转型中&#xff0c;SAP解决方案扮演着智能中枢角色&#xff0c;深度融合AI技术与核心业务场景&#xff0c;破解传统系统“数据孤岛流程僵化”双重困局。针对集团跨产业、多业态特点&#xff0c;方案以SAP S/4HANA为数据底座&#…

【RK3568 驱动开发:实现一个最基础的网络设备】

RK3568 驱动开发&#xff1a;实现一个最基础的网络设备一、引言二、编写网络设备驱动代码1. 核心数据结构与接口2. 核心功能实现3. 网络命名空间管理4.源代码三、编译与验证1.加载模块2.验证网络四、注意事项一、引言 RK3568 作为一款高性能 ARM 架构处理器&#xff0c;广泛应…

CAIDCP系列对话:AI 驱动安全

数字时代&#xff0c;AI浪潮翻涌&#xff0c;网络安全攻防战已悄然升级&#xff1a; 某工业控制系统遭AI驱动勒索攻击&#xff1a;攻击者借 AI 精准捕捉异常网络扫描、远程 PowerShell 痕迹&#xff0c;瞬间加密文件索要赎金&#xff1b; 另一边&#xff0c;某大型科技公司用AI…

ARMv8 没开mmu执行memset引起的非对齐访问异常

最近在haps上验证一个新的芯片&#xff0c;记录一下memset访问出错的问题。在没开mmu和cache的情况下&#xff0c;对全局变量指针进行memset清零操作&#xff0c;发现每次都会出现异常。最后发现是没开mmu导致出现了数据非对齐访问导致报错。排查EC区域发现是0x25&#xff0c;产…

基于LiveKit Go 实现腾讯云实时音视频功能

详细的生产部署建议&#xff0c;适用于 LiveKit Go 服务器 Web 客户端 TURN/HTTPS。 1. 服务器准备 推荐使用云服务器&#xff08;如阿里云、腾讯云、AWS、Azure等&#xff09;&#xff0c;公网IP&#xff0c;带宽建议≥10Mbps。系统推荐 Ubuntu 20.04/22.04 或 CentOS 7/8&…

三位一体:Ovis-U1如何以30亿参数重构多模态AI格局?

1. 时代命题&#xff1a;多模态统一模型的破局之战当GPT-4o以万亿级参数构建多模态帝国时&#xff0c;中国AI军团正在书写另一种答案。Ovis-U1用30亿参数证明&#xff1a;参数量并非决定性因素&#xff0c;架构创新与训练策略的化学反应&#xff0c;同样能催生出改变游戏规则的…

图像处理基础:镜像、缩放与矫正

在图像处理中&#xff0c;镜像、缩放和矫正操作是常见的图像变换手段。这些操作可以帮助我们对图像进行调整&#xff0c;以满足不同的需求。本文将详细介绍这三种操作的原理和实现方法&#xff0c;并通过代码示例展示它们的实际应用。一、图片镜像旋转1.1 什么是镜像旋转&#…

「Java案例」猜数游戏

案例实现 猜数字游戏 设计一个三位数的猜数游戏,三位数随机生成。程序提示用户输入一个三位的数字,依照以下的规则决定赢取多少奖金:1) 如果用户输入的数字和随机数字完全一致,输出:“恭喜恭喜!完全猜对了!获得三个赞!”2) 如果用户输入的数字覆盖了随机生成的所有数…

创客匠人解析创始人 IP 内卷:知识变现时代的生存逻辑与破局路径

当知识付费行业进入 “存量竞争” 阶段&#xff0c;创始人 IP 的 “内卷” 已非选择而是必然。创客匠人在服务数万知识创业者的实践中发现&#xff0c;那些实现逆势增长的案例&#xff0c;其核心差异往往在于创始人是否具备 “从幕后走到台前” 的决心与能力 —— 这种内卷并非…

250705-Debian12-sudo apt update加速+配置RDP远程桌面环境+设置FRP服务为开机启动项

A. 实现sudo apt update加速 在 Debian 12 上运行 sudo apt update 很慢的常见原因包括&#xff1a; &#x1f50d; 一、常见原因分析 使用了国外的软件源 默认 Debian 安装源多数是国际服务器&#xff0c;国内访问会非常慢。 DNS 解析慢或失败 软件源地址解析时间长&#xf…

数学视频动画引擎Python库 -- Manim Voiceover 语音服务 Speech Services

文中内容仅限技术学习与代码实践参考&#xff0c;市场存在不确定性&#xff0c;技术分析需谨慎验证&#xff0c;不构成任何投资建议。 Manim Voiceover 是一个为 Manim 打造的专注于语音旁白的插件&#xff1a; 直接在 Python 中添加语音旁白&#xff1a; 无需使用视频编辑器&…

C++11 forward_list 从基础到精通:原理、实践与性能优化

文章目录一、为什么需要 forward_list&#xff1f;二、基础篇&#xff1a;forward_list 的核心特性与接口2.1 数据结构与迭代器2.2 常用接口速览2.3 基础操作示例&#xff1a;从初始化到遍历2.3.1 初始化与遍历2.3.2 插入与删除&#xff1a;before_begin 的关键作用三、进阶篇&…

物联网技术的核心组件与发展趋势(截至2025年)

一、物联网技术的核心组件物联网&#xff08;IoT&#xff09;技术体系由感知层、网络层、平台层、应用层和安全层构成&#xff0c;各层技术协同工作&#xff0c;实现物理世界与数字世界的深度融合。1. 感知层&#xff1a;数据采集与交互传感器技术&#xff1a;类型&#xff1a;…

面试中常见的问题:JavaScript 宏任务与微任务,包教包会

事件循环Event Loop 我们都知道&#xff0c;JavaScript 是一种单线程的编程语言&#xff0c;简单的说就是&#xff1a;js只有一条通道&#xff0c;那么在任务多的情况下&#xff0c;就会出现拥挤的情况&#xff0c;这种情况下就产生了 ‘多线程’ &#xff0c;但是这种“多线程…

【LeetCode102.二叉树的层序遍历】vs.【LeetCode103.二叉树的锯齿形层序遍历】

题目链接 LeetCode102.二叉树的层序遍历&#xff1a;102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09;LeetCode103.二叉树的锯齿形层序遍历&#xff1a;103. 二叉树的锯齿形层序遍历 - 力扣&#xff08;LeetCode&#xff09; 实现思路 定义一个队列&#xff0…

Redis On-CPU Profiling定位瓶颈到可视化火焰图

1 . 前置检查&#xff1a;确认 CPU 真的是瓶颈 在正式打性能“补丁”前&#xff0c;务必跑一遍系统级健康核对表&#xff08;推荐 Brendan Greg 的 USE Method&#xff09;&#xff1a;资源关注指标常用工具CPUUtil/Idle、RunQueuetop、vmstat、sar内存Fault、Swap、Cache Miss…

未来趋势:AI与量子计算对服务器安全的影响

随着技术的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;和量子计算正在深刻改变信息技术的各个领域。特别是在服务器安全领域&#xff0c;这两项技术既带来了新的可能性&#xff0c;也带来了前所未有的挑战。本文将探讨AI和量子计算技术对服务器安全的影响&#xf…

markdown学习笔记(个人向) Part.1

markdown学习笔记&#xff08;个人向&#xff09; Part.1 1. 推荐插件 markdown&#xff1a; 安装支持markdown的插件&#xff1b; markdown-preview-github-styles&#xff1a; 可以将VS Code上默认的markdown预览样式修改成github上常用的形式&#xff0c;很大程度上提高文件…

ZooKeeper 实现分布式锁

1. 分布式锁概述 在分布式系统中&#xff0c;为了保证共享资源在并发访问下的数据一致性&#xff0c;需要引入分布式锁。分布式锁是一种在分布式环境下控制多个进程对共享资源进行互斥访问的机制。它与单机环境下的锁&#xff08;如Java中的synchronized或Lock&#xff09;不同…