@@ -5,7 +5,7 @@
//
// INPUT: a vector of integers
// OUTPUT: a vector containing the longest increasing subsequence
-#define STRICTLY_INCREASNG // buggué
+// #define STRICTLY_INCREASNG // buggué, quand on retrouve la suite ?
VI LongestIncreasingSubsequence(VI v) {
VPII best;
VI dad(v.size(), -1);
@@ -0,0 +1,17 @@
+#include <bits/stdc++.h>
+using namespace std;
+
+typedef vector<int> VI;
+typedef pair<int, int> PII;
+typedef vector<PII> VPII;
+#include "LongestIncreasingSubsequence.cpp"
+int main() {
+ VI v = {1, 2, 3, 4, 7, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+ VI r = LongestIncreasingSubsequence(v);
+ for(int i = 0; i < r.size()-1; i++)
+ assert(r[i] <= r[i+1]);
+ assert(r.size() == 12);
+ return 0;
+}
@@ -0,0 +1,18 @@
+#define STRICTLY_INCREASNG
+ VI v = {3, 4, 7, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+ assert(r[i] < r[i+1]);
+ assert(r.size() == 10);
@@ -14,6 +14,10 @@ run: $(TEST_RUN)
@echo Compiling $@...
@$(CC) -o $@ $<
+LongestIncreasingSubsequence2_test: LongestIncreasingSubsequence2_test.cpp LongestIncreasingSubsequence.cpp
+ @echo Compiling $@...
+ @$(CC) -o $@ $<
clean:
rm -f $(TEST_EXE)
@@ -161,7 +161,7 @@ Temps de cuisson : $O(n)$
\section{Divers}
\subsection{Longest increasing subsequence}
-{\scriptsize\lstinputlisting{code/LongestIncreasingSubsequence.cc}}
+{\scriptsize\lstinputlisting{code/LongestIncreasingSubsequence.cpp}}
\subsection{Maximum rectangle under an histogram / in a matrix}
{\scriptsize\lstinputlisting{code/BiggestRectangle.cpp}}