当前位置: 首页 > wzjs >正文

阿里巴巴网站装修怎么做全屏大图抖来查关键词搜索排名

阿里巴巴网站装修怎么做全屏大图,抖来查关键词搜索排名,一个网站有个前端后端怎么做,做网站seo赚钱吗二分查找常见操作总结 1. 基本二分查找 目标: 在有序数组 nums 中查找 target 的索引(如果存在)。 适用场景: 需要在 有序数组 中查找某个特定元素。适用于无重复元素的情况。 示例: 输入 nums [1, 2, 3, 4, 5], target 3,输出 2。 d…

二分查找常见操作总结

1. 基本二分查找

目标: 在有序数组 nums 中查找 target 的索引(如果存在)。

适用场景:

  • 需要在 有序数组 中查找某个特定元素。
  • 适用于无重复元素的情况。

示例:
输入 nums = [1, 2, 3, 4, 5], target = 3,输出 2

def binary_search(nums, target):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] == target:return midelif nums[mid] < target:left = mid + 1else:right = mid - 1return -1  # 没找到

2. 查找左边界(Lower Bound)

目标: 找到 第一个 大于等于 target 的元素索引。

适用场景:

  • 用于查找 某个值的最左侧出现位置,如查找元素插入的位置。
  • 有重复元素 时,找到 target 最左边的位置。

示例:
输入 nums = [1, 2, 2, 2, 3], target = 2,输出 1

def lower_bound(nums, target):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] < target:left = mid + 1else:right = mid - 1return left  # 返回的是第一个大于等于 target 的索引

3. 查找右边界(Upper Bound)

目标: 找到 第一个 大于 target 的元素索引。

适用场景:

  • 需要获取比目标值大的第一个位置
  • 可用于计算某个值的出现次数。

示例:
输入 nums = [1, 2, 2, 2, 3], target = 2,输出 4

def upper_bound(nums, target):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] <= target:left = mid + 1else:right = mid - 1return left  # 返回的是第一个大于 target 的索引

4 查找插入位置

目标: 找到 target 应该插入 的位置。

适用场景:

  • 需要在 有序数组 中插入一个新元素,并保持有序性。
  • 可用于 二分搜索的变体,比如寻找目标元素的最左/最右位置。

示例:
输入 nums = [1, 3, 5, 6], target = 5,输出 2

def search_insert_position(nums, target):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] == target:return midelif nums[mid] < target:left = mid + 1else:right = mid - 1return left  # 返回插入位置

5. 寻找旋转排序数组中的最小值

目标: 在 旋转排序数组 中找到 target

适用场景:

  • 需要在 部分有序数组(如旋转排序数组)中进行二分查找。
  • nums 在某个位置发生了 旋转,但仍然部分有序。

示例:
输入 nums = [4, 5, 6, 7, 0, 1, 2], target = 0,输出 4

    def findMin(nums: List[int]) -> int:left, right = 0, len(nums) - 1  # 闭区间 [0, n-1]while left < right:  # 只要区间不缩至一个元素mid = (left + right) // 2if nums[mid] > nums[right]:  # mid 在左半部分left = mid + 1  # 缩小左边界else:  # mid 在右半部分right = mid  # 缩小右边界,保持 `right` 包含在内return nums[left]  # 最终 `left == right`,即最小值下标

二分查找常见操作对比表

操作目标适用场景返回值示例输入示例输出
基本二分查找在有序数组中查找目标值的索引数组 无重复元素,查找某个特定元素目标值的索引,若不存在返回 -1nums = [1,2,3,4,5], target = 32
查找左边界 (Lower Bound)找到第一个大于等于 target 的元素索引有重复元素,查找 target 最左侧的位置target 在数组中的最左索引,若不存在返回插入位置nums = [1,2,2,2,3], target = 21
查找右边界 (Upper Bound)找到第一个大于 target 的元素索引有重复元素,查找 target 右侧界限返回大于 target 的第一个索引nums = [1,2,2,2,3], target = 24
查找插入位置找到 target 应插入的位置在有序数组中插入新元素,并保持有序性target 应插入的位置nums = [1,3,5,6], target = 52
寻找旋转排序数组中的最小值在旋转排序数组中找到最小值旋转排序数组数组中的最小值nums = [4,5,6,7,0,1,2]0
http://www.dtcms.com/wzjs/531769.html

相关文章:

  • 杭州的网站开发网站优化招聘
  • wap网站 链接微信淄博seo怎么选择
  • 网站的后台怎么做调查问卷网站ui设计
  • 智慧旅游门户网站建设方案成都网站建设系统
  • 上海 网站备案拍照网站注册免费
  • 网站上的中英文切换是怎么做的商品推广软文写作500字
  • wordpress注册弹窗代码seo标签优化
  • 知名网站制作案例深圳新闻最新事件
  • java 开发 网站网站建设技术
  • 赞皇建站建设蓝牙耳机网络营销推广方案
  • axure做网站原型seo成都培训
  • 网站的规划与建设seo工程师
  • 网站建设招聘条件网络销售公司经营范围
  • 网站建设的成本与费用有哪些网站接广告
  • 浙江城建建设集团网站关键词优化的原则
  • 免费名片在线设计网站推广哪些app最挣钱
  • 做网站需要做h5吗时事热点新闻
  • 网络营销的重要性seo关键词优化推广报价表
  • 长沙网站制作服务郑州今日头条
  • 幼儿园校园网站建设情况电脑优化大师哪个好
  • 网站建设开票项目选什么seo收费还是免费
  • 个人注册网址怎么注册泉州百度seo
  • 简单网站搭建如何免费找精准客户
  • 普法网站建设友情链接出售平台
  • 网站建设开发教程商务软文写作范文200字
  • 营销型网站的建设软文网站建设公司官网
  • 金湖网站设计排名优化服务
  • 查看注册过的网站成都网站制作费用
  • 广东网站建设电话小说百度风云榜
  • 拖拽网站怎么做的做销售记住这十句口诀