题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
#include <iostream> #include <vector> #include <bits/stdc++.h> #include<algorithm> using namespace std; int main() { int max=0; int n=0; cin>>n; int *a=new int[n]; for(int i=0;i<n;i++) { cin>>a[i]; } vector<int>b(n,1);//a数组初始值全为1 for(int i=0;i<n;i++) { int r=a[i];//当前点大小 for(int j=i+1;j<n;j++) { if(a[i]<a[j]&&b[j]<=b[i])//后边比前边的大,且跳数需要比前边大才更新 { b[j]=b[i]+1;//继承b[i]的加一步,更新 } } } int m=b[0]; for(int i=0;i<n;i++) { m=std::max (m,b[i]); } cout<<m; } // 64 位输出请用 printf("%lld")