```
public int findMin(int[] nums) {
int l = 0, r = nums.length - 1;
int last = nums[nums.length - 1];
while (l <= r) {
int mid = l + (r - l) / 2;
if (nums[mid] <= last) {
r = mid - 1;
}
else {
l = mid + 1;
}
}
return nums[l];
}
```