对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2...,其中Ui < Ui+1,且A[Ui] < A[Ui+1]。 给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。 测试样例: [2,1,4,3,1,5,6],7 返回:4
classAscentSequence {
public:
intfindLongest(vector
// write code here
vector
intmax = 0;
for(inti=0;i B.push_back(1); for(intj=i-1;j>=0;j--) { if(A[j]=B[i]?B[j]+1:B[i]; } max = max>B[i]?max:B[i]; } returnmax; } }; 程序借助辅助vector 有不了解的地方请回复!!!