diff --git "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\344\272\214\345\210\206\346\237\245\346\211\276\350\257\246\350\247\243.md" "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\344\272\214\345\210\206\346\237\245\346\211\276\350\257\246\350\247\243.md" index 7b95fac653686ec3d865afc355c1756fb1add9ea..4101b2d68c3f3de056a1a2a6a230dda6380c7384 100644 --- "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\344\272\214\345\210\206\346\237\245\346\211\276\350\257\246\350\247\243.md" +++ "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\344\272\214\345\210\206\346\237\245\346\211\276\350\257\246\350\247\243.md" @@ -537,19 +537,19 @@ def left_bound(nums, target): while left < right: mid = (left + right) // 2 if nums[mid] == target: - # 锁定边界 + # 锁定左侧边界 right = mid elif nums[mid] < target: left = mid + 1 elif nums[mid] > target: right = mid - # 检查越界情况 + # 检查left越界情况 if left >= len(nums) or nums[left] != target: return -1 return left -# 寻找右侧侧边界的二分搜索,开区间写法 +# 寻找右侧边界的二分搜索,开区间写法 def right_bound(nums, target): left, right = 0, len(nums) if right == 0: @@ -557,49 +557,49 @@ def right_bound(nums, target): while left < right: mid = (left + right) // 2 if nums[mid] == target: - # 锁定边界 + # 锁定右侧边界 left = mid + 1 elif nums[mid] < target: left = mid + 1 elif nums[mid] > target: right = mid # 检查越界情况 - if right < 0 or nums[left - 1] != target: + if left == 0 or nums[left - 1] != target: return -1 return left - 1 -# 左右边界闭区间写法,统一逻辑 +# 寻找左侧边界的二分搜索,闭区间写法 def left_bound(nums, target): left, right = 0, len(nums) - 1 while left <= right: mid = (left + right) // 2 if nums[mid] == target: - # 锁定边界 + # 锁定左侧边界 right = mid - 1 elif nums[mid] < target: left = mid + 1 elif nums[mid] > target: right = mid - 1 - # 检查越界情况 + # 检查left越界情况 if left >= len(nums) or nums[left] != target: return -1 return left - +# 寻找右侧边界的二分搜索,闭区间写法 def right_bound(nums, target): left, right = 0, len(nums) - 1 while left <= right: mid = (left + right) // 2 if nums[mid] == target: - # 锁定边界 + # 锁定右侧边界 left = mid + 1 elif nums[mid] < target: left = mid + 1 elif nums[mid] > target: right = mid - 1 - # 检查越界情况 + # 检查right越界情况 if right < 0 or nums[right] != target: return -1 return right -``` \ No newline at end of file +```