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

哪里有做商城的网站wordpress 页面下载文件

哪里有做商城的网站,wordpress 页面下载文件,有哪个网站可以做链接,jsp类型网站托管费用二分查找算法精讲 二分查找原理&闭区间写法34. 在排序数组中查找元素的第一个和最后一个位置关键的对与区间的定义 代码 左闭右开区间写法代码 开区间写法(最推荐)代码 如何处理不是> 的情况 资料来源 二分查找红蓝染色法https://www.bilibili.co…

二分查找算法精讲

  • 二分查找原理&闭区间写法
    • 34. 在排序数组中查找元素的第一个和最后一个位置
      • 关键的对与区间的定义
    • 代码
  • 左闭右开区间写法
    • 代码
  • 开区间写法(最推荐)
    • 代码
  • 如何处理不是>= 的情况

资料来源 二分查找红蓝染色法https://www.bilibili.com/video/BV1AP41137w7?vd_source=02eff3861fbae92e5089ad13f3b33f20&spm_id_from=333.788.videopod.sections

二分查找原理&闭区间写法

34. 在排序数组中查找元素的第一个和最后一个位置

34. 在排序数组中查找元素的第一个和最后一个位置

在这里插入图片描述

关键的对与区间的定义

关键:🔴牢牢记住这个区间的定义,是解题的关键!【补充】理解二分,请牢记区间的定义!区间内的数(下标)都是还未确定与 target 的大小关系的,有的是 < target,有的是 ≥ target;区间外的数(下标)都是确定与 target 的大小关系的。

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

代码

class Solution {public int[] searchRange(int[] nums, int target) {int start = lowerBound(nums, target);if (start == nums.length || nums[start] != target) {return new int[]{-1, -1}; // nums 中没有 target}// 如果 start 存在,那么 end 必定存在int end = lowerBound(nums, target + 1) - 1;return new int[]{start, end};}// lowerBound 返回最小的满足 nums[i] >= target 的下标 i// 如果数组为空,或者所有数都 < target,则返回 nums.length// 要求 nums 是非递减的,即 nums[i] <= nums[i + 1]private int lowerBound(int[] nums, int target) {int left = 0;int right = nums.length - 1; // 闭区间 [left, right]while (left <= right) { // 区间不为空// 循环不变量:// nums[left-1] < target// nums[right+1] >= targetint mid = left + (right - left) / 2;if (nums[mid] >= target) {right = mid - 1; // 范围缩小到 [left, mid-1]} else {left = mid + 1; // 范围缩小到 [mid+1, right]}}// 循环结束后 left = right+1// 此时 nums[left-1] < target 而 nums[left] = nums[right+1] >= target// 所以 left 就是第一个 >= target 的元素下标return left;}
}

左闭右开区间写法

代码

class Solution {public int[] searchRange(int[] nums, int target) {int start = lowerBound(nums, target);if (start == nums.length || nums[start] != target) {return new int[]{-1, -1}; // nums 中没有 target}// 如果 start 存在,那么 end 必定存在int end = lowerBound(nums, target + 1) - 1;return new int[]{start, end};}// lowerBound 返回最小的满足 nums[i] >= target 的下标 i// 如果数组为空,或者所有数都 < target,则返回 nums.length// 要求 nums 是非递减的,即 nums[i] <= nums[i + 1]private int lowerBound(int[] nums, int target) {int left = 0;int right = nums.length; // 左闭右开区间 [left, right)while (left < right) { // 区间不为空// 循环不变量:// nums[left-1] < target// nums[right] >= targetint mid = left + (right - left) / 2;if (nums[mid] >= target) {right = mid; // 范围缩小到 [left, mid)} else {left = mid + 1; // 范围缩小到 [mid+1, right)}}// 循环结束后 left = right// 此时 nums[left-1] < target 而 nums[left] = nums[right] >= target// 所以 left 就是第一个 >= target 的元素下标return left;}
}

开区间写法(最推荐)

代码

class Solution {public int[] searchRange(int[] nums, int target) {int start = lowerBound(nums, target);if (start == nums.length || nums[start] != target) {return new int[]{-1, -1}; // nums 中没有 target}// 如果 start 存在,那么 end 必定存在int end = lowerBound(nums, target + 1) - 1;return new int[]{start, end};}// lowerBound 返回最小的满足 nums[i] >= target 的下标 i// 如果数组为空,或者所有数都 < target,则返回 nums.length// 要求 nums 是非递减的,即 nums[i] <= nums[i + 1]private int lowerBound(int[] nums, int target) {int left = -1;int right = nums.length; // 开区间 (left, right)while (left + 1 < right) { // 区间不为空// 循环不变量:// nums[left] < target// nums[right] >= targetint mid = left + (right - left) / 2;if (nums[mid] >= target) {right = mid; // 范围缩小到 (left, mid)} else {left = mid; // 范围缩小到 (mid, right)}}// 循环结束后 left+1 = right// 此时 nums[left] < target 而 nums[right] >= target// 所以 right 就是第一个 >= target 的元素下标return right;}
}

如何处理不是>= 的情况

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

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

相关文章:

  • 教育机构网站制作模板校园官方网站建设的书籍
  • 优质企业网站开发企业网站认证
  • 服装公司网站建设方案樱花12e56
  • 网站后端怎么做河南省新闻出版局
  • 建设网站关键词怎么写宿州城乡建设局网站
  • 电商网站费用中国还有哪些做外贸的网站
  • 莱州环球网站建设新乡网站开发的公司
  • 国外推广网站wordpress 类似divi的
  • 网站建设和网站设计区别网页文件模板下载
  • 太原做网站的工作室wordpress搜索设置
  • 网站制作软件手机版下载做网站导航多大字号
  • 公关公司职级求职seo推荐
  • 建设热电偶网站山西正规网站建设报价公司
  • 臭臭猫网站建设福州网站建设哪家专业
  • 在凡科上做的网站无法加载出来工商局网站开发费用
  • 建设网贷网站网页排版软件
  • 网站内链分析中装建设股票有潜力吗
  • 网站的icp备案信息网站对企业的重要性
  • 用vue element-ui做的网站上海市工程建设检测网
  • 呼市赛罕区信息网站做一顿饭工作一站式做网站多少钱
  • 温州建设诚信网站服装代销的网站源码
  • 西安双语网站建设邗江建设局网站
  • wordpress edu v2.0爱站网站seo查询工具
  • 无锡市新吴区建设环保局网站营销网站建设定制
  • 学校网站建设报价成都建设路小学网站
  • 正规做网站的公司wordpress 批量 发布
  • 3800给做网站网站设计建设专业服务
  • 网站制作前景怎么样内蒙古交通建设质监局网站
  • 网站怎么添加背景苏州建设集团
  • 企业搭建网站多少钱常州网站制作公司排名