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

泰安网站建设入门推荐网站功能图

泰安网站建设入门推荐,网站功能图,html5网页制作成品,免费红色ppt模板下载LeetCode-704. 二分查找【数组 二分查找】 题目描述:解题思路一:注意开区间和闭区间背诵版:解题思路三: 题目描述: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target &#xf…

LeetCode-704. 二分查找【数组 二分查找】

  • 题目描述:
  • 解题思路一:注意开区间和闭区间
  • 背诵版:
  • 解题思路三:

题目描述:

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

提示:

你可以假设 nums 中的所有元素是不重复的。
n 将在 [1, 10000]之间。
nums 的每个元素都将在 [-9999, 9999]之间。

解题思路一:注意开区间和闭区间

# lower_bound 返回最小的满足 nums[i] >= target 的 i
# 如果数组为空,或者所有数都 < target,则返回 len(nums)
# 要求 nums 是非递减的,即 nums[i] <= nums[i + 1]# 闭区间写法
def lower_bound(nums: List[int], target: int) -> int:left, right = 0, len(nums) - 1  # 闭区间 [left, right]while left <= right:  # 区间不为空# 循环不变量:# nums[left-1] < target# nums[right+1] >= targetmid = (left + right) // 2if nums[mid] < target:left = mid + 1  # 范围缩小到 [mid+1, right]else:right = mid - 1  # 范围缩小到 [left, mid-1]return left  # 或者 right+1# 左闭右开区间写法
def lower_bound2(nums: List[int], target: int) -> int:left, right = 0, len(nums)  # 左闭右开区间 [left, right)while left < right:  # 区间不为空# 循环不变量:# nums[left-1] < target# nums[right] >= targetmid = (left + right) // 2if nums[mid] < target:left = mid + 1  # 范围缩小到 [mid+1, right)else:right = mid  # 范围缩小到 [left, mid)return left  # 或者 right# 开区间写法
def lower_bound3(nums: List[int], target: int) -> int:left, right = -1, len(nums)  # 开区间 (left, right)while left + 1 < right:  # 区间不为空mid = (left + right) // 2# 循环不变量:# nums[left] < target# nums[right] >= targetif nums[mid] < target:left = mid  # 范围缩小到 (mid, right)else:right = mid  # 范围缩小到 (left, mid)return right  # 或者 left+1class Solution:def search(self, nums: List[int], target: int) -> int:i = lower_bound(nums, target)  # 选择其中一种写法即可return i if i < len(nums) and nums[i] == target else -1

时间复杂度:O(logn)
空间复杂度:O(1)

背诵版:

class Solution:def search(self, nums: List[int], target: int) -> int:l = 0r = len(nums) - 1while l <= r:mid = (l + r) // 2if nums[mid] > target:r = mid - 1elif nums[mid] < target:l = mid + 1else:return midreturn -1

时间复杂度:O(logn)
空间复杂度:O(1)

解题思路三:


时间复杂度:O(logn)
空间复杂度:O(1)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

http://www.yayakq.cn/news/144012/

相关文章:

  • 网站权重如何合理分配巢湖网站制作
  • 微信 网站 收费标准深圳设计网站有限公司
  • 中国建设网官方网站济宁国泰网站建设的500字小结
  • 做搜狗网站网站开发字体过大
  • 企业网站建设开发贵州seo排名
  • 做网站用什么主题界面设计与制作是做什么的
  • 甘南北京网站建设在电脑上建设个人网站
  • 张家港外贸网站建设辽宁省住房和城乡建设厅
  • wordpress导航菜单 设置娄底网站建设优化企业
  • 如何制作自己的网站阿里巴巴网官方网站
  • 静态网站制作视频教育网站制作软件
  • 平面图设计网站电商运营推广怎么做
  • wordpress清新Minty主题v4揭阳seo推广公司
  • 健身网站设计模板下载seo人员是什么意思
  • 中国建设银行大学助学贷款网站集团网站建设服务公司
  • 网页设制作与网站建设宝典 pdf东莞市企业网站制作平台
  • 网站文字不能编辑器装饰设计有限公司
  • 移动网站建设口碑好了解宿迁建设网站
  • 网站开发二维码生成山东省聊城建设学校网站
  • 友情链接外链官网优化公司
  • 中学网站域名用什么用国外素材网站推荐
  • 成都网站建设 常凡云海南省建设执业资格注册管理中心网站
  • ps做网站的流程免费wordpress博客主题
  • 如何查网站的百度快照广东湛江怎么做网站教程
  • 益阳市住房和城乡建设局网站网站建设那家公司好
  • 乐搜做网站网站搭建流程
  • 城市分站seo惠州seo外包平台
  • 微信上打开连接的网站怎么做wordpress 友荐
  • 个人网站设计论文摘要白云做网站要多少钱
  • 广州网站制作网页网站自动跳转