@Venkat : suppose if the array were : 1 2 2 2 2 2 2 2 2 2 2, would ur
solution work ?


Sanju
:)



On Wed, Aug 24, 2011 at 3:58 AM, Ankit Minglani <ankit.mingl...@gmail.com>wrote:

> How about this :
> We use a divide and conquer approach and since the array is sorted.
> We find the middle element and check its value with its immediate left and
> right element .. it must match with anyone of them ..
>
> if it doesnt we have found such a element . and otherwise we divide the
> array again ..
> and then again find the middle element .. to check the same condition ..
>
> This will take O(lg n ) time :)
>
>
> On Wed, Aug 24, 2011 at 3:45 PM, Venkat <venkataharishan...@gmail.com>wrote:
>
>>  we can solve this with the help of  binary search.
>>
>> we know N, which is odd(because of one pair missing)
>>
>> We divide it array. Let consider your input { 1,1,2,2,2,2,3,3,4,5,5}
>>
>> int find_culprit(int[] array, int start, int end)
>> {
>> if(end==start)
>> return -1;
>>
>> int mid=((end-start) / 2) + start;
>> if array[mid] == array[mid-1]
>>      return find_culprit(mid,end)
>> if(array[mid] == array [mid +1]
>>      return find_culprit(start, mid);
>> else
>>     return array[mid];
>> }
>>
>> Run through:
>> Steps1: find_culprit(array,0,8)
>> mid=4
>> Step 2 : find_culprit(array,4,8))
>> mid=6
>> step 3 : find_culprit(array,6,8))
>> mid=7
>> return array[7]=4 (which dont have pair)
>>
>>
>> Run time O(log n+1) = O(log n)
>>
>> Please ask if you ve any doubts.....
>>
>> Regards
>> Venkat.
>>
>> On Aug 24, 2:49 pm, atul purohit <gonewiththe...@gmail.com> wrote:
>> > Hi,
>> >
>> > A* sorted *integer array contains elements in pairs. All the pairs are
>> > complete except one element whose pair is missing. Find that element.
>> >
>> > Ex.   { 1,1,2,2,2,2,3,3,4,5,5}
>> >  result = 5
>> >
>> > There is a standard solution which returns an XOR of all the elements.
>> But
>> > this needs O(n) time complexity. The person who asked me this question
>> said
>> > that this can be done in < O(n). Maybe we can eliminate some elements.
>> > Anyone knows how to do this?
>> >
>> > Cheers,
>> > Atul
>>
>> --
>> 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.
>>
>>
>
>
> --
> The more you sweat in the field, the less you bleed in war."
>
> Ankit Minglani
> NITK Surathkal
>
> --
> 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.
>

-- 
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.

Reply via email to