------
## 最终结论
```python
def findMin(nums):
    if not nums:
        return None

    left, right = 0, len(nums) - 1

    while left < right:
        mid = (left + right) // 2
        
        # If we encounter duplicates, we cannot determine the sorted part
        if nums[left] == nums[mid] == nums[right]:
            left += 1
            right -= 1
        elif nums[mid] <= nums[right]:  # Right half is sorted
            right = mid
        else:  # Left half is sorted
            left = mid + 1

    return nums[left]
```