I think the reason that the binary search works is that **outside the range specified by start and end, left is a small element and right is also a small element**. It keeps dividing the list into smaller list with the property until the length of the list is 1.

A sample binary search solution is below.

```
int findPeakElement2(int[] n)
{
int start = 0, end = n.length - 1;
while (start <= end)
{
int c = (end + start) / 2;
if (c + 1 < n.length && n[c] < n[c + 1])
start = c + 1;
else if (c - 1 >= 0 && n[c] < n[c - 1])
end = c - 1;
else
return c;
}
return start;
}
```

Therefore I wonder if num[-1]=num[n]=+∞, which breaks the mentioned property, can we still use binary search? Is there still O(log n) solution?