习题3.4 最长连续递增子序列
来源:互联网 发布:火鸟编程 编辑:程序博客网 时间:2024/05/19 10:36
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:
输入第1行给出正整数
nn
n(
≤105\le 10^5
≤10
5
);第2行给出
nn
n个整数,其间以空格分隔。
输出格式:
在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。
输入样例:
15
1 9 2 5 7 3 4 6 8 0 11 15 17 17 10
输出样例:
3 4 6 8
#include <bits/stdc++.h>using namespace std; //因为n是10^5,n^2 = 10^10,可能会超时;//最好就是降到O(n) void FindMaxIncreaseList(){ int n; scanf("%d", &n); int array[100005]; for (int i = 0; i < n; i++) { scanf("%d", &array[i]); } vector<int> record; //记录 vector<int> test; //辅助 record.clear(); int MaxNum = 1; int ThisNum = 1; int val = array[0]; record.push_back(val); //Out the first exampleList int i; for (i = 1; i < n; i++) { if (array[i] > val) { ThisNum++; record.push_back(array[i]); val = array[i]; } else { break; } } /** MaxNum = ThisNum:记录第一个节点开始遍历到的最长的递增序列 ThisNum = 1: 记录完后初始化 val = array[i],也进行初始化 */ MaxNum = ThisNum; ThisNum = 1; val = array[i]; test.clear(); //从i开始遍历, for (int j = i; j < n; j++) { if (array[j] > val) { ThisNum++; test.push_back(array[j]); val = array[j]; } else { if (ThisNum > MaxNum) { MaxNum = ThisNum; record.clear(); for (int k = 0; k < test.size(); k++) { record.push_back(test[k]); } } test.clear(); ThisNum = 1; val = array[j]; test.push_back(val); } } //因为最后一个没有比较 if (ThisNum > MaxNum) { MaxNum = ThisNum; record.clear(); for (int k = 0; k < test.size(); k++) { record.push_back(test[k]); } } //output for (int i = 0; i < record.size(); i++) { if (i == 0) printf("%d", record[i]); else printf(" %d", record[i]); } record.clear(); test.clear();} int main(){ FindMaxIncreaseList(); return 0;}
阅读全文
0 0
- 习题3.4 最长连续递增子序列
- 习题3.4 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 5-1 最长连续递增子序列
- 最长单调"连续"递增子序列
- 求最长连续递增子序列长度
- 单调递增连续最长子序列
- 最长递增子序列(非连续)
- 5-2 最长连续递增子序列
- 求最长连续递增公共子序列
- PTA 最长连续递增子序列
- 矩阵中最长连续递增子序列
- 用二分法寻找最长连续单调递增子序列
- 第十题 求一个数中二进制有多少个 一
- git基本命令行
- MongoDB的数据类型和基本概念
- CMake的交叉编译
- opencv5-读取像素
- 习题3.4 最长连续递增子序列
- ReactNative SectionList使用详解
- ZK
- 位图索引初步
- java解析图片里面的数字
- dubbo 一致性hash
- Oracle多表连接查询
- App 基础知识
- Python matplotlib画图表