Ohh..If it is so...Sorry !![?]  I understood it the different way...[?]
But if the question is as mentioned in your 2nd case then also I believe
there is O(n) solution.[?]

Maintain
    two pointers: *START* and *END*
    two variables: max1 and max2
Assume arr[MAX_SIZE] to be the array containing the given elements.

Algorithm:
*1) Initially, make START point to zeroth element and END pointing to last
element of the array.
2) Calculate max1 as:
        2a) Compare arr[**START**] and arr[**END**].
                   If arr[**START**] < arr[**END**]
                      {
                         max1 = **END** - **START**;
                         Jump to 3rd step
                      }
        2b) If arr[**START**] >= arr[**END**]
                   {
                         **END**-- ;
                         jump to step 2a and repeat this procedure till **
END** != **START*
*                   }
3) Reset **END** so that it points to last element of the array.
4) Calculate max2 as:
        4a) Compare arr[**START**] and arr[**END**].
                   If arr[**START**] < arr[**END**]
                      {
                         max2 = **END** - **START**;
                         Jump to 5th step
                      }
        4b) If arr**[START**] >= arr[**END**]
                   {
                        **START**++ ;
                         jump to step 4a and repeat this procedure till **
START** != **END*
*                    }
5) Return max( max1, max2)*

Hope this algo is clear.
This algo makes two passes over the array. Thus it is O(2n) = O(n)..[?]
Let me know if this algo fails for any case you can think of..[?]

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

<<363.gif>>

<<361.gif>>

<<33D.gif>>

<<322.gif>>

<<360.gif>>

Reply via email to