九度1011
来源:互联网 发布:德国护肤品推荐 知乎 编辑:程序博客网 时间:2024/05/20 09:10
九度1011
最大连续子序列
- 题目描述:
- 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。现在增加一个要求,即还需要输出该子序列的第一个和最后一个元素。
- 输入:
测试输入包含若干测试用例,每个测试用例占2行,第1行给出正整数K( K< 10000 ),第2行给出K个整数,中间用空格分隔。当K为0时,输入结束,该用例不被处理。
- 输出:
对每个测试用例,在1行里输出最大和、最大连续子序列的第一个和最后一个元素,中间用空格分隔。如果最大连续子序列不唯一,则输出序号i和j最小的那个(如输入样例的第2、3组)。若所有K个元素都是负数,则定义其最大和为0,输出整个序列的首尾元素。
- 样例输入:
6-2 11 -4 13 -5 -210-10 1 2 3 4 -5 -23 3 7 -2165 -8 3 2 5 01103-1 -5 -23-1 0 -20
- 样例输出:
20 11 1310 1 410 3 510 10 100 -1 -20 0 0
只要找到加和过程中这里面的最大值即可。 复杂度为O(n^2) 效率不高
#include<stdio.h>#include<iostream>using namespace std;int main(){int N;int num[10000];int maxBegin = 0;int maxEnd = 0;int currentBegin = 0;int currentEnd = 0;int max = -1;int flag = 0;while (true){cin >> N;maxBegin = 0;maxEnd = 0;currentBegin = 0;currentEnd = 0;max = -1;//☆☆☆☆☆☆注意这里一定要是 -1 要注意测试样例 3 -1 0 - 2 输出 0 0 0的特殊情况flag = 0;if (N == 0){return 0;}for (int i = 0; i < N; i++){cin >> num[i];if (num[i]>=0){flag = 1;}}//for (int i = 0; i < N; i++){if (num[i]>=0)//{currentBegin = i;currentEnd = i;int j = i;int currentValue = 0;int currentMax = num[i];while (currentValue >= 0 && j < N){currentValue = currentValue + num[j];if (currentValue>currentMax){currentMax = currentValue;currentEnd = j;}j++;}if (currentMax > max){max = currentMax;///这里有问题maxBegin = i;maxEnd = currentEnd;}}//小于0的开始必然不会作为最大值存在}if (flag == 0){max = 0;maxBegin = 0;maxEnd = N - 1;}cout << max << " " << num[maxBegin] << " " << num[maxEnd] << endl;}return 0;}
0 0
- 九度:1011
- 1.九度1011
- 九度oj 1011
- 九度1011
- 九度 1011
- 九度1011 最大连续子序列
- 九度1011 最大连续子序列
- 九度 1011 最大连续子序列
- 九度:1011<A+B for Metrics>
- 九度 1011 最大连续子序列
- 九度1011:最大连续子序列
- 九度[1011]-最大连续子序列
- 九度1011-最大连续子序列
- 【九度OJ】:九度OJ 1050
- 【九度OJ】:九度OJ 1053
- 【九度OJ】:九度OJ 1056
- 【九度OJ】:九度OJ 1059
- 【九度OJ】:九度OJ 1206
- mina框架分析---1
- SQL笔试基础科普
- 自己写的一个转换数字为中文大写形式的工具类
- Java基础之注解(annotation)
- 远程gdb调试
- 九度1011
- 码,主码,主属性,非主属性,平凡函数依赖,完全依赖等词解释
- 自定义控件来创建进度控制条
- js继承封装(一)
- c++中指针与引用
- 【数据结构实验】二叉树的遍历(栈版)
- C++的宏的示例
- OC语言中类的三大特性及本质(一)
- MyBatis(7)MyBatis高级映射