Try this..

```
public int searchMinDupRotatedArray(int[] array, int start ,int end){
if(start == end) return array[start];
if(start + 1 == end){
return array[start] <= array[end] ? array[start] : array[end];
}
int mid = (start+end)/2;
if(array[mid] < array[end])
return searchMinDupRotatedArray(array, start, mid);
else if(array[mid] > array[end])
return searchMinDupRotatedArray(array, mid+1, end);
else{
if(array[start]!= array[mid])
return searchMinDupRotatedArray(array, start, mid);
int right = searchMinDupRotatedArray(array, mid+1, end);
int left = searchMinDupRotatedArray(array, start, mid-1);
return left <= right ? left : right;
}
}
```