It stops earlier in linear search!

```
int findMin(vector<int>& nums) {
int start = 0, end = nums.size()-1, mid;
while (start <= end) {
mid = (start+end)/2;
if (nums[mid] > nums[end]) {
start = mid + 1;
} else if (nums[mid] < nums[end]) {
end = mid;
} else {
for (int i = start;i <= end;++i)
if (nums[i] > nums[end]) {
for (int j = i+1;j <= end;++j)
if (nums[j] <= nums[end])
return nums[j];
} else if (nums[i] < nums[end])
return nums[i];
return nums[end];
}
}
return nums[start];
}
```