PHP能否胜任工业控制系统的实时性要求?实测10万点/秒处理能力真相曝光
2025/12/31 17:05:27
nums[mid]和nums[r](右边界),判断最小值在左 / 右区间:nums[mid] > nums[r]:最小值在mid右侧(l=mid+1);nums[mid] < nums[r]:最小值在mid左侧(含 mid,r=mid);nums[mid] == nums[r]:无法判断,缩小右边界(r-=1)。from typing import List class Solution: def findMin(self, nums: List[int]) -> int: l, r = 0, len(nums) - 1 # 二分查找:最终l=r时就是最小值 while l < r: mid = l + (r - l) // 2 # 避免溢出 if nums[mid] > nums[r]: # 最小值在mid右侧 l = mid + 1 elif nums[mid] < nums[r]: # 最小值在mid左侧(含mid) r = mid else: # 相等时缩小右边界(避免漏最小值) r -= 1 return nums[l]