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

响应式网站 解决方案c 做注册网站

响应式网站 解决方案,c 做注册网站,推广普通话的顺口溜,alexa全球网站排名本文目录 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.ho-use.cn/article/10822171.html

相关文章:

  • 成立网站建设公司要求网站方案书
  • 旅行网站建设论文摘要全国中高风险地区一览
  • 云南网站建设公司注册安全工程师查询官网
  • 千助网站公司朝阳市网站公司
  • 四川网站建设 四川冠辰科技做网站先学什么
  • 做网站的收益wordpress 500错误
  • 广州公司摇号申请网站恢复wordpress修订版本
  • 网站实名网站空间哪里买
  • 衡水网站seo企业网站建设一条龙多少钱
  • 小企业网站建设新市场报价北京网站建设是什么意思
  • 做短租哪个网站好中国建设银行官网站保本理财
  • 深圳市建设工程造价站官网二手书交易网站开发背景分析
  • 网站建设方案数给网站人做网站
  • 东莞做网站排名优化推广排名优化系统
  • 赣州营销网站建设一般做网站的在哪里找
  • 鲜花网站建设企划书口碑好的秦皇岛网站建设哪里有
  • 网页网站开发公司佛山网站建设外贸
  • 中国高清adidas网站北京5人死亡
  • 汕头网站关键排名创建全国文明城市演讲稿
  • 购物网站建设款流程天津建设工程信息网网上报名
  • 建站之星模板好吗免费vip电影网站怎么做
  • 大型网站故障设计店名logo
  • 不属于企业网站建设基本标准的是一个ip地址上可以做几个网站吗
  • 山东省建设工程 评估中心网站做食物网站应该考虑些什么
  • 产品设计排版网站wordpress 网银
  • 新网站收录多少关键词郑州工装定制公司
  • 这么给网站做关键字临沂地区建站网站
  • 设计通网站建设网店运营推广登录入口
  • 疗养院有必要做网站吗招聘网站设计师要求
  • 新乡专业做网站做英文网站怎么赚钱