c_cpp 最长的子序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最长的子序列相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void print(vector <int> a, vector <int> prev, int x){
if(x == -1) return;
print(a,prev,prev[x]);
cout << a[x] << " ";
}
void lis(vector <int> a){
int n = a.size();
vector <int> res(n,1);
vector <int> prev(n,-1);
for(int i=1; i<n; i++){
for(int j=0; j<i; j++){
if(a[j] < a[i]){
int temp = 1+res[j];
if(temp > res[i]){
res[i] = temp;
prev[i] = j;
}
}
}
}
int largest = INT_MIN, max_i;
for(int i=0; i<n; i++){
if(res[i] > largest){
largest = res[i];
max_i = i;
}
}
cout << "length of lis: " << largest << endl << "and the sequence is" << endl;
print(a,prev,max_i);
}
int main(){
int n;
cout << "enter no. of elements" << endl;
cin >> n;
vector <int> a(n);
cout << "enter the elements" << endl;
for(int i=0; i<n; i++) cin >> a[i];
lis(a);
return 0;
}
以上是关于c_cpp 最长的子序列的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 最长的子序列
c_cpp 最长的子序列
c_cpp 最长的子串
c_cpp 最长的子字符串,不重复字符
c_cpp 最长的共同子序列
c_cpp 最长的字符串子序列