Time O(n) , Space O(1)
int maximum_continuous_product ( int numbers[] , int size )
{
int i ;
int before_negative = 0 ;
int current_p = 1 ;
int max_p = 0 ;
int is_negative = 0 ;
for ( i = 0 ; i < size ; i ++ )
{
if ( numbers[i] < 0 )
{
if ( is_negative == 0 )
{
is_negative = 1 ;
}
else
{
is_negative = 0 ;
}
if ( before_negative == 0 )
{
before_negative = current_p ;
current_p *= -1 ;
}
else
{
current_p *= -1 ;
current_p *= before_negative ;
before_negative = 0 ;
}
}
current_p *= numbers[i] ;
if ( is_negative == 0 )
{
if ( current_p > max_p )
{
max_p = current_p ;
}
}
if ( current_p == 0 )
{
current_p = 1 ;
before_negative = 0 ;
is_negative = 0 ;
}
}
return max_p ;
}
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.