1. 程式人生 > >習題3.4 最長連續遞增子序列(20 分)浙大版《數據結構(第2版)》題目集

習題3.4 最長連續遞增子序列(20 分)浙大版《數據結構(第2版)》題目集

space align font list 格式 ott mar 不能 第一次

給定一個順序存儲的線性表,請設計一個算法查找該線性表中最長的連續遞增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子序列為(3,4,6,8)。

輸入格式:

輸入第1行給出正整數n(10?5??);第2行給出n個整數,其間以空格分隔。

輸出格式:

在一行中輸出第一次出現的最長連續遞增子序列,數字之間用空格分隔,序列結尾不能有多余空格。

輸入樣例:

15
1 9 2 5 7 3 4 6 8 0 11 15 17 17 10

輸出樣例:

3 4 6 8


代碼:
#include <iostream>
using namespace
std; int main() { int n,r = 0,c = 1,maxi = 0; int num[100000]; cin>>n; for(int i = 0;i < n;i ++) { cin>>num[i]; } for(int i = 1;i < n;i ++) { if(num[i] <= num[i - 1]) { if(c > maxi)maxi = c,r = i - 1
; c = 1; continue; } c ++; } if(c > maxi)maxi = c,r = n - 1; for(int i = maxi - 1;i >= 0;i --) { if(i == maxi - 1)cout<<num[r - i]; else cout<< <<num[r - i]; } }

習題3.4 最長連續遞增子序列(20 分)浙大版《數據結構(第2版)》題目集