I'm supposed to find the longest alternating sequence in an array.
For example, -1 3 -4 5 -2 1 -7 5 5 The longest sequence is: -1 3 -4 5 -2 1 -7 5
int ZigZag(int a[], int N)
{
int i;
int j;
int z = 0;
int dolzina = 0;
node *result = NULL;
int prethodenZnak = getSign(a[0]);
for(i = 0; i < N; i++)
{
for(j = i; j < N; j++)
{
if(a[j] == 0)
a[j] = prethodenZnak;
if(getSign(a[j]) != prethodenZnak)
{
dolzina++;
prethodenZnak = getSign(a[j]);
}
else
break;
}
append(&result, dolzina+1);
dolzina = 0;
}
return max(result);
}
This is the current code that I have, but It's failing to provide a solution when a zero(0) is encountered. Any ideas?