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

集团网站建北京百度竞价托管

集团网站建,北京百度竞价托管,一个人看的免费视频高清直播,滨州做网站的科技公司1.题目描述 2.思路 方法1(自己写的):一次二分查找找到等于target的一个元素索引axis,然后向左右延伸找边界。 方法2(灵茶山艾府佬的闭区间二分查找写法):定义一个lower_bound()函数找到第一个…

1.题目描述

2.思路

方法1(自己写的):一次二分查找找到等于target的一个元素索引axis,然后向左右延伸找边界。

方法2(灵茶山艾府佬的闭区间二分查找写法):定义一个lower_bound()函数找到第一个大于等于某数的元素索引,分别对target和(target + 1)调用lower_bound()函数即可。

方法3(对方法2的自主延伸):两次二分查找,分别找小于等于(target - 1)的元素索引以及大于等于(target + 1)的元素索引。

3.代码(Python3)

方法1:

class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:left, right = 0, len(nums) - 1axis = -1while left <= right:mid = (left + right) // 2if target < nums[left] or target > nums[right]: breakelif nums[mid] < target < nums[right]: left = mid + 1elif nums[left] < target < nums[mid]: right = mid - 1else:if target == nums[left]: axis = leftelif target == nums[right]: axis = rightelse: axis = midbreakif axis == -1: return [-1, -1]left_bound, right_bound = axis, axislb_found, rb_found = False, Falsewhile not lb_found or not rb_found:if not lb_found:if left_bound == 0 or nums[left_bound - 1] != target: lb_found = Trueelse: left_bound -= 1if not rb_found:if right_bound == len(nums) - 1 or nums[right_bound + 1] != target: rb_found = Trueelse: right_bound += 1return [left_bound, right_bound]

方法2:

class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:def lower_bound(target_num):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] >= target_num: right = mid - 1else: left = mid + 1return leftstart = lower_bound(target)if start == len(nums) or nums[start] != target: return [-1, -1]end = lower_bound(target + 1) - 1return [start, end]

方法3:

class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:def lower_bound(target_num):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] >= target_num: right = mid - 1else: left = mid + 1return leftdef higher_bound(target_num):left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] <= target_num: left = mid + 1else: right = mid - 1 return rightstart = lower_bound(target)if start == len(nums) or nums[start] != target: return [-1, -1]end = higher_bound(target)return [start, end]

4.执行情况

方法1:

方法2:

方法3:

5.感想

其实方法3完全就是多此一举,是非常没有必要的。灵神的方法也太妙了。

http://www.dtcms.com/wzjs/295673.html

相关文章:

  • 打开b站看直播网店运营与管理
  • 长春建网站一般要多少钱百度搜索风云榜
  • 专业商城网站建设公司百度搜索官网
  • flash网站尺寸如何自己做一个软件
  • 彭州建设局网站免费找精准客户的app
  • 网站mdb数据库seo关键字排名
  • 济阳做网站公司torrentkitty磁力天堂
  • 网站模板 带手机端在线资源搜索引擎
  • 交互设计包含网站设计驻马店网站seo
  • flash网站as网络推广服务合同
  • 没有网站如何做adsense武汉网站营销seo方案
  • wordpress 评论翻页aso优化重要吗
  • 网站建设公司做ppt吗百度提交入口的注意事项
  • 主要网站 开发语言百度客服电话人工服务
  • 卡曼科技网站建设竞价托管咨询微竞价
  • 网站建设可行性报告范文百度店铺
  • 西宁市网站建设公司株洲网站设计
  • dw做的网站如何上传云服务器seo怎么优化效果更好
  • 预登记网站开发 会议电子商务seo实训总结
  • 为女朋友做的表白网站今日的最新消息
  • 惠东网站设计电销名单渠道在哪里找
  • 网站建设合同下载百度关键词推广一年多少钱
  • 成都网站开发东莞推广服务
  • 网站开发bug天天网站
  • 怎样免费做自己的网站镇江市网站
  • 做视频网站需要什么空间五合一网站建设
  • asp动态网站开发课后答案竞价排名名词解释
  • 在国际网站做外贸需要条件花生壳免费域名注册
  • wordpress中文cms十堰seo排名公司
  • 网站建设龙头企业常见的线下推广渠道有哪些