热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【每天一道PAT】1007MaximumSubsequenceSum

思路两种方法,一种方法暴力求解一种方法实时读入,当当前相加和小于0时,当前相加和更新为0。方法1求出全部最大序列和第五个测试点啊,理解有问题?不知道哪儿错了,数据为全是负数和0。希

思路

两种方法,一种方法暴力求解
一种方法实时读入,当当前相加和小于0时,当前相加和更新为0。

方法1 求出全部最大序列和
第五个测试点啊,理解有问题?不知道哪儿错了,数据为全是负数和0。希望有明白的读者加以指正。

#include
int num[10005];
int main()
{
int N;//数据个数
int this_sum=0, max_sum=0;//当前相加和、最大和
int m,n,temp;//记录子序列的左右边界下标
int count=0;//计数
scanf("%d", &N);
for (int i = 0; i {
scanf("%d",&num[i]);
if(num[i]<=0) count++;
}
if(count==N)
{
printf("0 %d %d",num[0],num[N-1]);
return 0;
}
m = n =0;
for (int i = 0; i {
this_sum = 0;
for (int j = i; j {
this_sum+=num[j];
if(this_sum >max_sum)
{
max_sum =this_sum;
n = i;
m = j;
}
}
}
printf("%d %d %d",max_sum, num[n], num[m]);
}

技术分享图片

方法2 实时处理

#include
int num[10005];
int main()
{
int N;
int this_sum=0, max_sum=0;
int m,n,temp;
int count=0;
scanf("%d", &N);
for (int i = 0; i {
scanf("%d",&num[i]);
if(num[i]<0) count++;
}
if(count==N)
{
printf("0 %d %d\n",num[0],num[N-1]);
return 0;
}
this_sum=max_sum=num[0];
m = n =0;
for (int i = 1; i {
if(this_sum <0 )
{
this_sum = 0;
temp = i;
}
this_sum += num[i];
if(this_sum >max_sum)
{
max_sum =this_sum;
n = temp;
m = i;
}
}
if(max_sum <0)
printf("0 %d %d", num[0], num[N-1]);
else
printf("%d %d %d",max_sum, num[n], num[m]);
}

技术分享图片


推荐阅读
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 本文介绍了如何使用Java中的同步方法和同步代码块来实现两个线程的交替打印。一个线程负责打印1到52的数字,另一个线程负责打印A到Z的字母,确保输出顺序为12A34B...5152Z。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 探讨了在有序数列中实现多种查询和修改操作的高效数据结构设计,主要使用线段树与平衡树(Treap)结合的方法。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • HDU 1394:线段树优化求解逆序对问题
    本文介绍如何使用线段树高效求解排列中的逆序对问题。通过单点增减和区间求和操作,线段树能够快速处理此类问题,并提供了一种替代树状数组的解决方案。 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • Qt中QSpinBox与QSlider的联动实现
    本文介绍如何在Qt框架下将QSpinBox和QSlider组件进行联动,使用户在拖动滑块或修改文本框中的数值时,两个组件能同步更新,从而提供更加直观和便捷的用户体验。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 深入理解T-SQL中的NULL与三值逻辑
    本文探讨了SQL Server中的三值逻辑,解释了谓词计算结果为TRUE、FALSE和UNKNOWN的规则。通过具体示例,详细说明了如何正确处理NULL值,并探讨了在不同约束条件下的行为。 ... [详细]
  • 本文介绍了几种不同的编程方法来计算从1到n的自然数之和,包括循环、递归、面向对象以及模板元编程等技术。每种方法都有其特点和适用场景。 ... [详细]
author-avatar
vghoon
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有