Solution 1

Java
public int findMin(int[] nums) {
    int left = 0, right = nums.length-1, mid;
    while (left < right) {
        mid = (right + left)/2;
        if (nums[left] > nums[mid]) {
            right = mid;
            left++;
        } 
        else if (nums[mid] > nums[right]) {
            left = mid+1;
        }
        else {
            return nums[left];
        }
    }
    return nums[right];
}
Leet Code/java.java · L707–724