Interview Question
Country: United States
int longest_alternating_subsequence(int *arr, int size)
{
int decreasing=1, i=0, length=0;
while(i<size-1)
{
while(decreasing&&(i<size-1))
{
if(arr[i+1]>arr[i])
{
decreasing=0;
length++;
i++;
}
else
i++;
}
while(!decreasing&&(i<size-1))
{
if(arr[i+1]<arr[i])
{
decreasing=1;
length++;
i++;
}
else
i++;
}
}
return length+1;
}
stackoverflow.com/questions/6914969/dynamic-programming-find-longest-subsequence-that-is-zig-zag
- Anonymous April 15, 2012