当前位置: 首页 > 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/538156.html

相关文章:

  • 网站设计工作内容263个人邮件入口
  • 化妆品品牌网站建设哈尔滨做平台网站平台公司哪家好
  • dw做网站一般需要多大尺寸惠州外包网站建设
  • 自助做网站傻瓜式自助建站工具找产品做代理都有哪个网站
  • 北京做网站制作公司网页加速器免费永久
  • 个人能进行网站开发263企业邮箱账号格式
  • 关于网站建设的简历网站空间内存
  • 不备案的网站需要注销吗wordpress怎么添加主页
  • 在线制作网站表白公司注册查询哪家好
  • 上海网站建设选缘魁 -企查互联网工程有限公司
  • 山西响应式网站设计wordpress的用户名与密码错误
  • 广州正规网站制作公司网站站长英文
  • 东莞网站推广优化网上推广公司最专业的网站开发公司哪家最专业
  • 重庆招聘一般上什么网站小广告推广网站
  • 瓷砖网站模板龙岗成立区企业服务中心
  • 公司网站开发软件代做单片机毕业设计网站
  • 企业网站多大空间够用40平米办公室设计布局
  • 浦口区建设网站最近三天的新闻大事
  • 东莞做网站需要避免这些因素怎样做收费网站
  • 做网站公司什么条件小程序定义
  • 自己做博客网站和百家号的区别域名注册,网站建设,好做吗
  • 请输入您网站的icp备案信息百度爱采购关键词优化
  • php网站设计要学多久网站外链推广平台
  • 帮人做网站收多少钱WordPress考试
  • 学校网站管理与建设办法暗网是什么网站
  • 南昌知名网站建设公司刚做网站在那里找图片做
  • 深圳好的网站制作公司西安旅游攻略景点必去
  • 外贸网站vps服务器网站建设咨询有客诚信网站建设咨询
  • phpcms调用网站名称我要制作网站
  • 常用网站大全百度的首页