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

响应式网站 解决方案公司名词解释

响应式网站 解决方案,公司名词解释,wordpress获取自定义字段值,一级a做爰片免费网站在线本文目录 1 中文题目2 求解方法#xff1a;左右边界二分查找2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 给定一个按照非递减顺序排列的整数数组 nums#xff0c;和一个目标值 target。请找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存… 本文目录 1 中文题目2 求解方法左右边界二分查找2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 给定一个按照非递减顺序排列的整数数组 nums和一个目标值 target。请找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target返回 [-1, -1]。 必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 输入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]提示 0 ≤ n u m s . l e n g t h ≤ 1 0 5 0 \leq nums.length \leq10^5 0≤nums.length≤105 − 1 0 9 ≤ n u m s [ i ] ≤ 1 0 9 -10^9 \leq nums[i] \leq 10^9 −109≤nums[i]≤109nums 是一个非递减数组 − 1 0 9 ≤ t a r g e t ≤ 1 0 9 -10^9 \leq target \leq 10^9 −109≤target≤109 2 求解方法左右边界二分查找 2.1 方法思路 方法核心 使用两次改进的二分查找分别查找目标值的左右边界通过不同的条件控制边界的移动 实现步骤 1查找左边界的过程 初始化左右指针分别指向数组的开始和结束在循环中计算中间位置当找到大于或等于目标值的元素时记录该位置并继续往左找当找到小于目标值的元素时需要往右找最终找到第一个等于目标值的位置需要判断是否越界以及是否真的找到了目标值 2查找右边界的过程 同样初始化左右指针在循环中不断更新中间位置当找到小于或等于目标值的元素时继续往右找当找到大于目标值的元素时需要往左找最终找到最后一个等于目标值的位置同样需要进行边界检查 方法示例 输入nums [5,7,7,8,8,10], target 8左边界查找过程 1. 初始状态left 0, right 5mid 2, nums[mid] 7 targetleft mid 1 32. 第二次迭代left 3, right 5mid 4, nums[mid] 8 targetright mid - 1 33. 第三次迭代left 3, right 3mid 3, nums[mid] 8 targetright mid - 1 24. 循环结束left 3找到左边界右边界查找过程 1. 初始状态left 0, right 5mid 2, nums[mid] 7 targetleft mid 1 32. 第二次迭代left 3, right 5mid 4, nums[mid] 8 targetleft mid 1 53. 第三次迭代left 5, right 5mid 5, nums[mid] 10 targetright mid - 1 44. 循环结束right 4找到右边界返回[3, 4]2.2 Python代码 class Solution:def searchRange(self, nums: List[int], target: int) - List[int]:def binary_search_left(nums, target):# 寻找左边界的二分查找left, right 0, len(nums) - 1while left right:mid left (right - left) // 2# 如果中间值大于或等于目标值继续往左找if nums[mid] target:right mid - 1# 如果中间值小于目标值往右找else:left mid 1# 判断是否找到目标值if left len(nums) or nums[left] ! target:return -1return leftdef binary_search_right(nums, target):# 寻找右边界的二分查找left, right 0, len(nums) - 1while left right:mid left (right - left) // 2# 如果中间值小于或等于目标值继续往右找if nums[mid] target:left mid 1# 如果中间值大于目标值往左找else:right mid - 1# 判断是否找到目标值if right 0 or nums[right] ! target:return -1return right# 特殊情况处理if not nums:return [-1, -1]# 分别查找左右边界left_bound binary_search_left(nums, target)right_bound binary_search_right(nums, target)return [left_bound, right_bound]2.3 复杂度分析 时间复杂度O(log n) 两次二分查找每次二分查找的时间复杂度为O(log n) 空间复杂度O(1) 只使用常数额外空间不随输入规模增长 3 题目总结 题目难度中等 数据结构数组 应用算法左右边界二次二分查找
http://www.hkea.cn/news/14267666/

相关文章:

  • 国外极简网站网站内容建设方法步骤
  • 网站开发公司 郑州北京制作小程序
  • 专业做视频的网站沈阳网站建设服务平台
  • 海宁市住房和城乡建设网站磁力搜索器kitty
  • 中山专业网站建设怎么在百度上做推广上首页
  • 淳安县建设网站淮安建设工程协会网站查询系统
  • 设计签名免费网站国内域名服务商
  • 长沙网站设计哪家好关键词设定在网站上
  • dedecms网站源码网站的页面由什么组成
  • 瑞安市公用建设局网站视觉设计和ui设计有什么区别
  • 域名空间网站怎么做浙江建设网站首页
  • 免费空间的个人网站如何处理脓包痘痘
  • wordpress 主题模板下载失败新手seo入门教程
  • 网络产品及其推广方法安徽网络优化方案
  • 营销型企业网站有哪些类型手机上怎么设计广告图片
  • 网站建设方为客户提供使用说明书长沙工商注册流程
  • 如何建立营销性企业网站论文做网站用什么浏览器
  • 做免费网站教程建自己的o2o网站要多少钱
  • 惠州做网站 百度优化珠海医疗网站建设公司
  • wordpress如何添加广告悬浮按钮电子商务seo是指什么意思
  • 优惠券领取网站开发外包公司排名前十
  • 100个万能网站微商做网站网站
  • 河北建设厅网站6优化网站图片
  • 建筑网站绿地新里城手机可以制作app软件吗
  • 海南网站建设报价有没有网站可以做地图
  • 苏州建站网站模板有专门做最佳推荐的网站
  • 连江建设局网站重庆市建设局网站
  • 只会网站开发能创业吗手机app开发自学教程
  • 男女在床上做暖暖插孔网站开发一个打车软件需要多少钱
  • 广东专注网站建设怎么样网站开发交流吧