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

怎么验证网站备案密码是否正确网络运营课程培训班

怎么验证网站备案密码是否正确,网络运营课程培训班,网页模板的使用方法,泰安网络信息有限公司考点三【二分查找】 【考点总结】 二分查找模板:红蓝染色法 !!!习惯用开就用开,习惯用闭就用闭!!! (核心):对于区间左右端点更新,…

考点三【二分查找】

【考点总结】

  1. 二分查找模板:红蓝染色法

!!!习惯用开就用开,习惯用闭就用闭!!!

(核心):对于区间左右端点更新,若左/右端点是开区间,就没有-1 +1;若左/右端点是闭区间,有-1 +1
(溢出):对于部分语言,存在mid的溢出问题,修改方式:int mid = (low + (high - low)) / 2;

①闭区间[low, high]

//定义区间左右端点
int low = 0;
int high = n - 1;
//左端点在右端点右侧(区间为空),就退出循环
while (low <= high) {//定义中位数int mid = (low + high) / 2;//判断if (nums[mid] == target) {// TODO 返回目标值 或 返回true 或 其他操作} else if (nums[mid] >= target) {high = mid - 1;} else {low = mid + 1;}
}
// TODO 返回false 或 其他操作

②开区间(low, high)

//定义区间左右端点
int low = -1;
int high = n;
//左端点在右端点前一个位置(区间为空),就退出循环
while (low + 1 < high) {//定义中位数int mid = (low + high) / 2;//判断if (nums[mid] == target) {// TODO 返回目标值 或 返回true 或 其他操作} else if (nums[mid] >= target) {high = mid;} else {low = mid;}
}
// TODO 返回false 或 其他操作

③左开右闭区间(low, high]

//定义区间左右端点
int low = -1;
int high = n - 1;
//左端点、右端点重合(区间为空),就退出循环
while (low < high) {//定义中位数int mid = (low + high) / 2;//判断if (nums[mid] == target) {// TODO 返回目标值 或 返回true 或 其他操作} else if (nums[mid] >= target) {high = mid - 1;} else {low = mid;}
}

④左闭右开区间[low, high)

//定义区间左右端点
int low = 0;
int high = n;
//左端点、右端点重合(区间为空),就退出循环
while (low < high) {//定义中位数int mid = (low + high) / 2;//判断if (nums[mid] == target) {// TODO 返回目标值 或 返回true 或 其他操作} else if (nums[mid] >= target) {high = mid;} else {low = mid + 1;}
}

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

【题目】
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置
如果数组中不存在目标值 target,返回 [-1, -1]
你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

示例 1:
输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]

示例 2:
输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]

示例 3:
输入:nums = [], target = 0
输出:[-1,-1]

提示:
0 <= nums.length <= 10 5 10^5 105
− 10 9 -10^9 109 <= nums[i] <= 10 9 10^9 109
nums 是一个非递减数组
− 10 9 -10^9 109 <= target <= 10 9 10^9 109

【核心思路】
区间可采用4种的任意一种,这里用闭区间
由于目的是找到lower bound,因此当nums[mid]==target时,不直接返回low,而是继续更新high,直至找到target第一次出现的位置。故在while循环外再执行return

测试用例1
在这里插入图片描述

测试用例2
在这里插入图片描述
测试用例1(开区间理解)
在这里插入图片描述

【复杂度】
时间复杂度: O ( l o g n ) O(log n) O(logn)
空间复杂度: O ( 1 ) O(1) O(1)

【代码】

class Solution {public int lower_bound(int[] nums, int target) {//获取数组长度int n = nums.length;//定义区间左右端点int low = 0;int high = n - 1;while (low <= high) {//定义中位数int mid = (low + high) / 2;//判断if (nums[mid] >= target) {high = mid - 1;} else {low = mid + 1;}}return low;}public int[] searchRange(int[] nums, int target) {//获取数组长度int n = nums.length;//定义结果数组int[] res = new int[2];//获取区间的左端点int start = lower_bound(nums, target);//特殊情况判断(不存在元素 / 不和目标值相等)if (start == n || nums[start] != target) {res[0] = -1;res[1] = -1;return res;}//获取区间的右端点(目标值下一个数的下界坐标的前一个位置)int end = lower_bound(nums, target + 1) - 1;//返回结果数组res[0] = start;res[1] = end;return res;}
}

参考:
1、灵神视频讲解
2、灵神解析

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

相关文章:

  • 建设银行网站 诚聘英才 频道如何注册网站
  • 西安网站开发公司哪家强长沙网站seo优化公司
  • 网站底部公司是什么样的免费网站或软件
  • 怎么筛选一家做网站做的好的公司站长之家app下载
  • 网站和微信公众号建设方案百度云官网首页
  • 做ppt找图片的网站有哪些今日要闻10条
  • 公司建设网站申请报告seo网站建设是什么意思
  • 青岛做网站的 上市公司制作网站的软件有哪些
  • 上云网站做等保网站关键词怎么快速上排名
  • 网站建设学习步骤廊坊网站建设优化
  • 商务局网站建设最新域名解析
  • 网站建站网站品牌推广方案范文
  • 想自己做衣服上哪个网站学广东seo网站优化公司
  • 学习java可以自己做网站吗谷歌怎么推广自己的网站
  • 网站原创文章来源友链查询站长工具
  • 中山做app网站公司哪家好百度知道网页入口
  • 怎么查网站注册信息seo店铺描述例子
  • wordpress去掉页面中的标题盐城seo营销
  • 商务网站创建流程是什么优化关键词的方法正确的是
  • 给网站做备案软文广告例子
  • 无锡做网站需要多少钱seo和sem的区别是什么
  • 图片制作的标准是什么seo查询seo
  • 网站建设公司海南十种网络推广的方法
  • 铁路项目建设 网站手机制作网页
  • 快看点自媒体平台注册账号入口seo服务外包费用
  • 宁波网站设计价格百度正式员工工资待遇
  • 广州有资质的网页制作公司莆田百度seo公司
  • 关于申请开通网站建设的请示百度风云榜
  • 企业建网站的好处安卓优化大师下载
  • 广州营销型网站建设平台推广方式