There is no faster way than O(n) to solve an input like "1 1 1 1 1 0 1 1 1 1 1 1 1 1". Binary search won't work in this case as your nums[start] == nums[mid] == nums[end], which half would you discard then? In other words, you have to examine all elements. With that being said, this is probably the only way to solve it. Run time: 6ms. Not bad at all.

```
class Solution {
public:
int findMin(vector<int>& nums) {
int min = nums[0];
for (int val : nums)
{
if (min > val)
{
min = val;
}
}
return min;
}
};
```