九度oj 题目1376:最近零子序列
- 题目描述:
- 给定一个整数序列,你会求最大子串和吗?几乎所有的数据结构与算法都会描述求最大子串和的算法。今天让大家来算算最近0子串和,即整数序列中最接近0的连续子串和。例如,整数序列6, -4, 5, 6中,连续子串{-4,5}的和为1,比其他任何连续子串的和都更接近0。该整数序列的最近0子串和就是1.
- 输入:
- 每个测试文件包含多个测试案例,每个测试案例两行,第一行包括一个整数N,代表整数序列的长度,第二行是以空格隔开的N个整数,代表该整数序列。其中我们能保证1 <= N <= 105,每个整数大于等于-230且小于230.
- 输出:
- 对于每个整数序列,输出一行,包含一个整数,即最近0子串和。如果同时存在多个解(如-1, 3, 1存在-1和1两个解),则输出最大的一个(输出1)。
- 样例输入:
-
4 6 -4 5 6 2 -1 1
- 样例输出:
-
1 0 这个题一开始思考有没有O(n)的办法,结果并没有找到很好的办法于是只好按O(n2)的办法做,试着提交,居然没超时代码如下
1 #include <cstdio> 2 #include <cstdlib> 3 #include <cmath> 4 #include <cstring> 5 int n; 6 typedef long long ll; 7 int num[100002]; 8 ll sum[100002]; 9 10 int main(int argc, char const *argv[]) 11 { 12 while(scanf("%d",&n) != EOF) { 13 sum[0] = 0; 14 for(int i = 1; i <= n; i++) { 15 scanf("%d",&num[i]); 16 sum[i] = sum[i-1] + num[i]; 17 } 18 int min = 999999999; 19 for(int i = n; i >= 1 && min != 0; i--) { 20 for(int j = i-1; j >= 0 && min != 0; j--) { 21 ll tmp = sum[i] - sum[j]; 22 if(abs(tmp) < abs(min)) { 23 min = tmp; 24 } 25 if(abs(tmp) == abs(min)) { 26 if(tmp >= 0) { 27 min = tmp; 28 } 29 } 30 if(min == 0) { 31 break; 32 } 33 } 34 } 35 printf("%d\n",min); 36 } 37 return 0; 38 } 39 40 //6 -4 5 6 41 //6 2 7 13
转载于:https://www.cnblogs.com/jasonJie/p/5811540.html
九度oj 题目1376:最近零子序列相关推荐
- 九度OJ 题目1179:阶乘
/********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...
- 九度OJ 题目1069:查找学生信息 随笔
** 九度OJ 题目1069:查找学生信息 ** 题目描述如下: 输入N个学生的信息,然后进行查询. 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息 ...
- 九度OJ 题目1203:IP地址
/********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1203:IP地址 * 来源:http://ac. ...
- 九度oj 题目1354:和为S的连续正数序列
题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...
- 九度OJ—题目1032:ZOJ
题目描写叙述: 读入一个字符串.字符串中包括ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出.当某个字符用完时,剩下的仍然依照ZOJ的顺序输出. 输入: 题目包括多组用例,每组用例占一行,包括ZOJ ...
- 九度oj题目1385:重建二叉树
题目1385:重建二叉树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4419 解决:1311 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和 ...
- 九度oj 题目1380:lucky number
题目描述: 每个人有自己的lucky number,小A也一样.不过他的lucky number定义不一样.他认为一个序列中某些数出现的次数为n的话,都是他的lucky number.但是,现在这个序 ...
- 九度OJ 题目1011:最大连续子序列
题目描述: 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.最大 ...
- 九度oj 题目1411:转圈
题目描述: 在一个有向图有n个顶点(编号从1到n),给一个起点s,问从起点出发,至少经过一条边,回到起点的最短距离. 输入: 输入包括多组,每组输入第一行包括三个整数n,m,s(1<=n< ...
最新文章
- 关于 MongoDB 与 SQL Server 通过本身自带工具实现数据快速迁移 及 注意事项 的探究...
- 如何用度量影响敏捷环境
- SpringMVC 课纲
- 【Windows10下OpenCV 3.4.0 + Visual Studio 2015开发环境的配】
- 分布式、中间件、消息队列的工作模式
- Python函数调用(2)
- python正则表达式案例_Python正则表达式--实例秘籍
- 怀仁一中计算机等级考试网页,2021年度初中计算机等级考试理论复习题.doc
- css3 水纹效果(仿写阿里云)
- Cordova+Vue实现Android APP开发
- axio请求与响应拦截器
- 第0期-前言-学习软件测试是否需要培训
- 戴个美瞳却患上了角膜炎和干眼症?
- 纸飞机 --2013-08-08博客搬家
- C#中隐藏的15大功能
- 外设测试 - FAN 接口测试
- Python生成个性二维码
- 消除拖延的方法_拖延很烂—因此,这就是“吃青蛙”提高生产力的方法
- 使用python和pywin32模块实现连接打印机批量打印文件
- 想学python爬虫,有没有推荐的书籍?