diff --git a/Algorithms/dynamic_programming/LongestIncreasingSub - nLogn.cpp b/Algorithms/dynamic_programming/LongestIncreasingSub - nLogn.cpp new file mode 100644 index 0000000..6f1237d --- /dev/null +++ b/Algorithms/dynamic_programming/LongestIncreasingSub - nLogn.cpp @@ -0,0 +1,26 @@ +#include +using namespace std; + +#define INF 1e9 + +/* Finds longest increasing subsequence in O(N logN) time, using binary search */ + +int main(){ + int n; + cin >> n; + + vector A(n); + vector lis(n+1, INF); + + for(int i=0;i> A[i]; + + /* for non-decreasing subsequence, change lower_bound to upper_bound */ + for(int i=0;i