The question is already asked in SO:
Longest increasing subsequence
but the solution is in Python.
Here is my C# version
private static int longestSeq(int[] input1)
{
int counter = 0;
int i = 0;
int x = 0;
bool flag = true;
if (input1.Length == 0) return 0;
if (input1.Length == 1) return 1;
while (i != input1.Length-1)
{
if (flag)x= input1[i];
int y = input1[i + 1];
if (x < y) { counter++; flag = true; }
else { if (flag) { x = input1[i]; flag = !flag; } }
i++;
}
return counter+1;
}
But it is not working for
int[] input1 = new int[] { 0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15 };
The expected output is 6 but I am getting 5.
2 questions
a) What is that i am missing?
b) How can I optimize my program