The idea is to find the pivot index, which splits the array in two sub arrays, before the pivot and after the pivot. Then the minimum is the smaller first element in the two sub-arrays.

```
public int findMin(int[] nums) {
if(nums.length == 1)
return nums[0];
int i = 0;
while(nums[i] <= nums[++i] && i < nums.length - 1);
return Math.min(nums[0], nums[i]);
}
```