vault backup: 2025-09-10 10:23:05
This commit is contained in:
36
Books/代码随想录/代码模版.md
Normal file
36
Books/代码随想录/代码模版.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# 数组
|
||||
## 二分
|
||||
```python
|
||||
def binary_search(nums, target):
|
||||
left, right = 0, len(nums) - 1
|
||||
while left <= right:
|
||||
mid = left + (right - left) // 2 # 防止溢出
|
||||
if nums[mid] == target:
|
||||
return mid # 找到目标,返回索引
|
||||
elif nums[mid] < target:
|
||||
left = mid + 1 # 目标在右半部分
|
||||
else:
|
||||
right = mid - 1 # 目标在左半部分
|
||||
return -1 # 未找到目标
|
||||
|
||||
# 左右边界
|
||||
def left_bound(nums, target):
|
||||
left, right = 0, len(nums) - 1
|
||||
while left <= right:
|
||||
mid = left + (right - left) // 2
|
||||
if nums[mid] < target:
|
||||
left = mid + 1
|
||||
else:
|
||||
right = mid - 1
|
||||
return left if left < len(nums) and nums[left] == target else -1
|
||||
def right_bound(nums, target):
|
||||
left, right = 0, len(nums) - 1
|
||||
while left <= right:
|
||||
mid = left + (right - left) // 2
|
||||
if nums[mid] <= target:
|
||||
left = mid + 1
|
||||
else:
|
||||
right = mid - 1
|
||||
return right if right >= 0 and nums[right] == target else -1
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user