Mình có đoạn code này
#include <bits/stdc++.h>
using namespace std;
int n, a[50000], h[50000], res;
int main()
{
scanf("%d", &n);
for(int i = 1;i <= n;i++) scanf("%d", &a[i]);
h[1] = 1; res = 1;
for(int i = 2;i <= n; i++){
if(a[i] < a[h[1]]){
h[1] = i;
}
else
if(a[i] > a[h[res]]){
res++;
h[res] = i;
}
else{
int l = 1 , r = res;
int pos;
while(l <= r){
int mid = l + r >> 1;
if(a[i] > a[h[mid]])
//pos = mid,
l = mid + 1;
else
r = mid - 1;
}
pos = l - 1; // ???
h[pos+1] = i;
}
}
printf("%d", res);
return 0;
}
edit: đề bài nhập một số n; dòng sau nhập dãy n số. tìm dãy con tăng dài nhất
Cách mình code chỗ đóng cmt kia có giống nhau không. tại sao submit 2 code thì cách viết trong cmt bị sai. cảm ơn mọi người