Home Arrays Finding spans in an array.

Finding spans in an array.

by nikoo28
0 comment 3 minutes read

Question: Find spans in an array. Given an array arr[], the SPAN s[i] of arr[i] is the maximum number of consecutive elements arr[j] immediately before arr[i] such that arr[j] <= arr[i].

Let us try to understand the question once again. This is a very common problem in stock markets to find the peaks. Spans have applications to financial analysis(Example:- You might have heard a saying “STOCKS AT 52 WEEK HIGH”). The span of a stocks price on certain day, i , is the maximum number of consecutive days (up-to the current day) the price of the stock has been less than or equal to its price on i. As an example let us consider the following diagram:-


Day : Index i Input Array arr[i] S[i] : Span of arr[i]
0 6 1
1 3 1
2 4 2
3 5 3
4 2 1

Now let us try to find an algorithm to find the spans.

The simplest method would be to find the contiguous days with less stock price for each day.


int main(void)
	int arr[10];

	input an array of integers
	int i,j;

	//to store the spans
	int new_arr[10];

		j = i-1;
		int count = 0;
		//counting the contagious smaller elements
		while(arr[j] <= arr[i] && j>=0)
		new_arr[i] = count;

	printf("The spans are:- ");
		printf("%d ",new_arr[i]);

	return 0;

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More