序列问题(续)

最大连续子序列

输出区间首元素,尾元素。若所有K个元素都是负数,则定义其最大和为0,输出整个序列的首尾元素。 时间复杂度O(n),前缀和则为O(n^2)

 1 #include <cstdio>
 2 #include <iostream>
 3 using namespace std;
 4 #define Max 10000+10
 5 int main()
 6 {
 7     int n,s,e,sum,sumMax,S,E;
 8     int a[Max];
 9     int i,j;
10     freopen("in.txt","r",stdin);
11     while(scanf("%d",&n)==1&&n)
12     {
13         sum=0;
14         sumMax=-1;
15         for(i=0;i<n;i++)
16             scanf("%d",&a[i]);
17         s=a[0];
18         S=a[0];
19         for(i=0;i<n;i++)
20         {
21             sum+=a[i];
22             if(sum>sumMax)
23             {
24                 sumMax=sum;
25                 S=s;
26                 E=a[i];
27             }
28             else if(sum<0)
29             {
30                 sum=0;
31                 s=a[i+1];
32             }
33         }
34         if(sumMax<0)    {sumMax=0,S=a[0],E=a[n-1];}
35         printf("%d %d %d\n",sumMax,S,E);
36     }
37 }

时间: 2024-08-26 14:56:08

序列问题(续)的相关文章

uva 10098 生成字典续序列

生成字典续序列. // // main.cpp // 10098_1 // // Created by Fangpin on 15/3/7. // Copyright (c) 2015年 FangPin. All rights reserved. // #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; char

序列最小最优化算法(SMO)-SVM的求解(续)

在前一篇文章中,我们给出了感知器和逻辑回归的求解,还将SVM算法的求解推导到了最后一步,在这篇文章里面,我们将给出最后一步的求解.也就是我们接下来要介绍的序列最小最优化算法. 序列最小最优化算法(SMO): 首先回顾一下.我们使用广义拉格朗日函数,将目标函数和限制条件写到一起,然后证明了原始问题能够转化成对偶问题来求解.并且使用KKT条件将对偶问题化简,得到下面的问题(以非线性可分SVM的研究问题作为例子,求解): $\max \limits_{a} \ -\frac{1}{2}\sum_{i=

数据库原理 - 序列4 - 事务是如何实现的? - Redo Log解析(续)

> 本文节选自<软件架构设计:大型网站技术架构与业务架构融合之道>第6.4章节. 作者微信公众号:> 架构之道与术.进入后,可以加入书友群,与作者和其他读者进行深入讨论.也可以在京东.天猫上购买纸质书. ## 6.5.5 Redo Log Block结构 Log Block还需要有Check sum的字段,另外还有一些头部字段.事务可大可小,可能一个Block存不下产生的日志数据,也可能一个Block能存下多个事务的数据.所以在Block里面,得有字段记录这种偏移量.图6-9展示了

iOS账号续费及证书更新流程

开发者账号会员快到期的时候,苹果会发送给开发者账号的注册邮箱一封邮件,提示用户账号快到期了,及时续费,一般是提前一个月提示用户续费.下面开始介绍续费流程; 1.登录开发者账号后,网页上面会有账号过期黄色提示;点击renew your membership ;会跳到支付页面;个人开发者账号是688RMB/年; 2.选择continue; 3.购买详情,选择continue,然后点击购买 4.使用visa 或者 万事达信用卡支付,填写好发票信息就ok了,需要纸质发票的选择纸质发票;购买完后,苹果会发

C++ Primer 学习笔记_81_模板与泛型编程 --类模板成员[续1]

模板与泛型编程 --类模板成员[续1] 二.非类型形参的模板实参 template <int hi,int wid> class Screen { public: Screen():screen(hi * wid,'#'), cursor(hi * wid),height(hi),width(wid) {} //.. private: std::string screen; std::string::size_type cursor; std::string::size_type height

数据结构-各类排序算法总结[续]

各类排序算法总结 三.交换类排序[接上] 2.快速排序 快速排序是通过比较关键码.交换记录,以某个记录为界(该记录称为支点),将待排序列分成两部分.其中,一部分所有记录的关键码大于等于支点记录的关键码,另一部分所有记录的关键码小于支点记录的关键码.我们将待排序列按关键码以支点记录分成两部分的过程,称为一次划分.对各部分不断划分,直到整个序列按关键码有序. 如果每次划分对一个元素定位后,该元素的左侧子序列与右侧子序列的长度相同,则下一步将是对两个长度减半的子序列进行排序,这是最理想的情况! [算法

编写高质量代码——“零星”总结(续3)

明白在C++中如何使用C C++中使用C的程序库,实现C++和C的混合编程:extern "C" { /* code */ }一定要加在C++的代码文件中才能起作用. //C编译器编译函数时不带函数的类型信息,只包含函数符号名字:而C++编译器为了实现函数重载,在编译时会带上函数的类型信息.extern "C"的作用:告诉C++链接器寻找调用函数的符号时,采用C的方式. =================================== 使用memcpy()系列

那些年,我追过的绘图语言(续)

https://zhuanlan.zhihu.com/p/19901245 **************************** 那些年,我追过的绘图语言(续) 陈天 3 年前 自从上一篇文章发布后,大家给我推荐了不少绘图工具,比如startUML,rose,TikZ package,flowchart.js,matlab,R等等.感兴趣的可以自行研究.至于matlab/R这样的工具,虽然强大,但跟本文讨论的画一般意义的设计图(如uml图)无关. 鉴于很多读者想进一步了解plantUML,这

python作业(运算符续)

运算符续 1算数运算 2比较运算 3赋值运算 4位运算: 注: 5逻辑运算 and注解: 1在python中,and 和of执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回 它们实际进行比较的值之一. 2 在布尔上下文中从左到又演算表达式的值,如果布尔上下文中的所有值都为真, 那么and返回最后一个值. 3 如果布尔上下文中的某个值为假,则and返回第一个假值 or注解: 1使用or时,在布尔上下文中从左到右演算值,就像and一样,如果有一个值为真, or立即返回该值 2