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

网站结构 网站内容建设开发工具控件怎么用

网站结构 网站内容建设,开发工具控件怎么用,搜索引擎优化的内容,大门户wordpress主题下载1. 题目 题目描述: 给定一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值,返回 [-1, -1]。 要求: 必须使用二分查找算法 时间复杂度必须…

1. 题目

题目描述
给定一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值,返回 [-1, -1]

要求

  1. 必须使用二分查找算法

  2. 时间复杂度必须是 O(log n)

  3. 不能使用线性扫描或内置函数直接查找(如 index()find() 等)

示例

输入: nums = [5,7,7,8,8,10], target = 8
输出: [3,4]输入: nums = [5,7,7,8,8,10], target = 6
输出: [-1,-1]输入: nums = [], target = 0
输出: [-1,-1]

2. 思路

1. 为什么必须用二分查找

  • 题目明确要求时间复杂度 O(log n)

  • 线性扫描法(O(n))不符合要求

  • 数组已排序,是二分查找的典型应用场景

2. 问题分解

需要解决两个子问题:

  1. 找到 target 的第一个位置(左边界)

  2. 找到 target 的最后一个位置(右边界)

3. 二分查找变种

  • 标准二分查找找到目标值就返回

  • 本题需要继续查找边界,因此需要修改标准算法

4. 算法步骤

  1. 实现查找左边界的二分查找

    • 当 nums[mid] >= target 时继续向左搜索

    • 最后检查找到的位置是否等于 target

  2. 实现查找右边界的二分查找

    • 当 nums[mid] <= target 时继续向右搜索

    • 最后检查找到的位置是否等于 target

  3. 组合两个结果

3. 代码

nums=list(map(int,input().split()))
target=int(input())
"""
在排序数组中查找元素的第一个和最后一个位置
param nums: 非递减排序的整数数组
param target: 要查找的目标值
return: 目标值的起始和结束位置 [start, end],如果不存在返回 [-1, -1]
"""
def find_left():left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] >= target:right = mid - 1else:left = mid + 1return left if left < len(nums) and nums[left] == target else -1def find_right():left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] <= target:left = mid + 1else:right = mid - 1return right if right >= 0 and nums[right] == target else -1if not nums:return [-1, -1]left_pos = find_left()
right_pos = find_right()print([left_pos, right_pos])

文章转载自:

http://50TXWcoC.ygwyt.cn
http://CPhOMANe.ygwyt.cn
http://k0hKjuWt.ygwyt.cn
http://a3rPZsO4.ygwyt.cn
http://3xxz5saT.ygwyt.cn
http://Y8clIDd1.ygwyt.cn
http://nmVcgcmN.ygwyt.cn
http://Adc0YEWb.ygwyt.cn
http://Y5FaAcQu.ygwyt.cn
http://XueNOHZL.ygwyt.cn
http://xYfVX2xI.ygwyt.cn
http://0P2rgcca.ygwyt.cn
http://FDvt5xgd.ygwyt.cn
http://NDTeYb1F.ygwyt.cn
http://Rtj5Cdg1.ygwyt.cn
http://5NvzqZ35.ygwyt.cn
http://LsAHtEAd.ygwyt.cn
http://9rIwlz4g.ygwyt.cn
http://jnFGQvPh.ygwyt.cn
http://tfa4Bimf.ygwyt.cn
http://kjYBkr5g.ygwyt.cn
http://aDNqJCZf.ygwyt.cn
http://EYXpt8nw.ygwyt.cn
http://QLztOxJi.ygwyt.cn
http://yjS2FFDb.ygwyt.cn
http://eGtYg9yQ.ygwyt.cn
http://ewKCE7DK.ygwyt.cn
http://9yuUMhtz.ygwyt.cn
http://EsMNR1Wh.ygwyt.cn
http://Qx15mAT6.ygwyt.cn
http://www.dtcms.com/wzjs/747462.html

相关文章:

  • 太仓网站建设公司网站如何做
  • 互动创意网站长春建站宣传
  • 网站空间大小怎么查看wordpress如何卸载
  • 深圳网站建设公司服务wordpress 婚礼主题
  • 免费自建网站步骤网站建设与软件开发哪个好赚钱
  • 深圳哪家公司需要网站建设的wix和wordpress知乎
  • 游戏网站制作教程oa系统怎么使用
  • 中卫网站设计无代码开发平台什么意思
  • 河间哪里有做网站的装饰工程预算与报价
  • 杭州萧山做网站做企业网站好的
  • 网站备案和域名解析wordpress自动分表
  • 金猪云高端网站建设如何建设网站教程
  • 外卖网站建设费用装修公司室内装饰
  • 网站建设的硬件支持企业网站怎么做才能留住客户
  • phpcms做汽车网站企业公司怎么注册
  • 网站开发 卓优科技软件定制开发公司地址
  • 免费数据查询网站网站后台管理系统页面
  • 搭理彩票网站开发非洲外贸采购商
  • 做什么网站比较简单百度做广告多少钱一天
  • 充值网站分销站怎么做广州网站优化排名
  • 网站建设一般需要什么软件wordpress内容批量替换
  • 联通北京网站备案如何给自己的网站做seo
  • wordpress主题官方网站企业seo
  • 做网页做网站的技术人才宜宾网站建设工作室
  • 电影网站怎么做seo买个网站域名要多少钱一年
  • 淘宝客怎么做自己网站推广微信开发小程序工具
  • 上海网站营销公司thinkphp建站网址
  • dedecms双语网站pytson做网站安全吗
  • WordPress discuz 仿站江阴响应式网站开发
  • 网站解析一般什么时候渠道网站