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

企业网站建设官网百度竞价运营

企业网站建设官网,百度竞价运营,中国建设銀行网站投诉电话,高科技展厅效果图设计一、查找精确值 从一个有序数组中找到一个符合要求的精确值&#xff08;如猜数游戏&#xff09;。如查找值为Key的元素下标&#xff0c;不存在返回-1。 //这里是left<right。 //考虑这种情况&#xff1a;如果最后剩下A[i]和A[i1]&#xff08;这也是最容易导致导致死循环的…

一、查找精确值

从一个有序数组中找到一个符合要求的精确值(如猜数游戏)。如查找值为Key的元素下标,不存在返回-1。

//这里是left<=right。
//考虑这种情况:如果最后剩下A[i]和A[i+1](这也是最容易导致导致死循环的情况)首先mid = i,
//如果A[mid] < key,那么left = mid+1 = i +1,如果是小于号,则A[i + 1]不会被检查,导致错误
int left = 1,right = n;
while(left <= right)
{//这里left和right代表的是数组下标,所有没有必要改写成mid = left + (right - left)/2;//因为当代表数组下标的时候,在数值越界之前,内存可能就已经越界了//如果left和right代表的是一个整数,就有必要使用后面一种写法防止整数越界int mid = (left + right) / 2;if(A[mid] == key)return mid;else if(A[mid] > key)//这里因为mid不可能是答案了,所以搜索范围都需要将mid排除right = mid - 1;elseleft = mid + 1;
}
return -1;

二、查找大于等于/大于key的第一个元素

这种通常题目描述为满足某种情况的最小的元素。

int left = 1,right = n;
while(left < right)
{//这里不需要加1。我们考虑如下的情况,最后只剩下A[i],A[i + 1]。//首先mid = i,如果A[mid] > key,那么right = left = i,跳出循环,如果A[mid] < key,left = right = i + 1跳出循环,所有不会死循环。int mid = (left + right) / 2;if(A[mid] > key)//如果要求大于等于可以加上等于,也可以是check(A[mid])right = mid;//因为找的是大于key的第一个元素,那么比A[mid]大的元素肯定不是第一个大于key的元素,因为A[mid]已经大于key了,所以把mid+1到后面的排除elseleft = mid + 1;//如果A[mid]小于key的话,那么A[mid]以及比A[mid]小的数都需要排除,因为他们都小于key。不可能是第一个大于等于key的元素,
}

三、查找小于等于/小于key的最后一个元素

这种通常题目描述为满足某种情况的最大的元素。如Leetcode69题,求sqrt(x)向下取整就是这种模板。

int left = 1, right = n;
while(left < right)
{//这里mid = (left + right + 1) / 2;//考虑如下一种情况,最后只剩下A[i],A[i + 1],如果不加1,那么mid = i,如果A[mid] < key,执行更新操作后,left = mid,right = mid + 1,就会是死循环。//加上1后,mid = i + 1,如果A[mid] < key,那么left = right = mid + 1,跳出循环。如果A[mid] > key,left = mid = i,跳出循环。int mid = (left + right + 1) / 2;if(A[mid] < key)left = mid;//如果A[mid]小于key,说明比A[mid]更小的数肯定不是小于key的最大的元素了,所以要排除mid之前的所有元素elseright = mid - 1;//如果A[mid]大于key,那么说明A[mid]以及比A[mid]还要大的数都不可能小于key,所以排除A[mid]及其之后的元素。
}

四、总结

最后两种情况的循环跳出条件是left<right,为什么不是小于等于呢?因为我们的区间变换思路是不断的舍去不可能是解的区间,最后只剩下一个数就是我们的解。而第一种情况就算最后只剩一个数也有可能不是解,所以需要使用小于等于。

  • 查找精确值,循环条件是小于等于;查找满足情况的最大最小值,循环条件是小于。
  • 查找满足条件的最大数,mid = (right + left + 1) / 2;查找满足条件的最小数,mid = (right + left)/2
  • mid = left + (right - left) / 2,不是适用于所有的情况。
  • 如果存在没有解的情况,比如从[1,2,3,4,5]找出大于等于6的第一个数,我们只需要将最后剩下的数单独进行一次判断就可以了。

作者:T-SHLoRk
链接:https://www.acwing.com/blog/content/307/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


文章转载自:
http://wanjiagizmo.rkck.cn
http://wanjiahispaniola.rkck.cn
http://wanjiaochlocratic.rkck.cn
http://wanjiaenterocele.rkck.cn
http://wanjiahypocrisy.rkck.cn
http://wanjiaanemoscope.rkck.cn
http://wanjiaregenesis.rkck.cn
http://wanjiaembrangle.rkck.cn
http://wanjiaagitatedly.rkck.cn
http://wanjiaadsuki.rkck.cn
http://wanjiazygogenesis.rkck.cn
http://wanjiaultrathin.rkck.cn
http://wanjiahilary.rkck.cn
http://wanjiajefe.rkck.cn
http://wanjiadiverticulitis.rkck.cn
http://wanjianaissance.rkck.cn
http://wanjiabluefish.rkck.cn
http://wanjiamodularize.rkck.cn
http://wanjiarosemary.rkck.cn
http://wanjiaunallowable.rkck.cn
http://wanjialawmaking.rkck.cn
http://wanjiaprudent.rkck.cn
http://wanjiaouteat.rkck.cn
http://wanjialadderlike.rkck.cn
http://wanjiawetproof.rkck.cn
http://wanjiateniacide.rkck.cn
http://wanjiaschizophrenogenic.rkck.cn
http://wanjiaspittoon.rkck.cn
http://wanjiagrasshopper.rkck.cn
http://wanjiarailfan.rkck.cn
http://wanjiaserriform.rkck.cn
http://wanjiazythum.rkck.cn
http://wanjiathusly.rkck.cn
http://wanjiatty.rkck.cn
http://wanjiahathor.rkck.cn
http://wanjiaaccidental.rkck.cn
http://wanjiafogless.rkck.cn
http://wanjiaholocene.rkck.cn
http://wanjiaperorate.rkck.cn
http://wanjiadwelt.rkck.cn
http://wanjiafishway.rkck.cn
http://wanjiahyetometer.rkck.cn
http://wanjiainterlope.rkck.cn
http://wanjiasalvation.rkck.cn
http://wanjianumbingly.rkck.cn
http://wanjiaunderlaid.rkck.cn
http://wanjiafinlander.rkck.cn
http://wanjiaarquebus.rkck.cn
http://wanjiapolemological.rkck.cn
http://wanjiaromulus.rkck.cn
http://wanjialeather.rkck.cn
http://wanjiaunderweight.rkck.cn
http://wanjiaamplectant.rkck.cn
http://wanjiamidafternoon.rkck.cn
http://wanjiacephalic.rkck.cn
http://wanjiafughetta.rkck.cn
http://wanjiadilatancy.rkck.cn
http://wanjiainterlineation.rkck.cn
http://wanjiairremovable.rkck.cn
http://wanjiaoverdelicacy.rkck.cn
http://wanjiapuseyism.rkck.cn
http://wanjiapossessor.rkck.cn
http://wanjiaanthropoid.rkck.cn
http://wanjiapansophism.rkck.cn
http://wanjiabootstrap.rkck.cn
http://wanjiapantsuit.rkck.cn
http://wanjialibrary.rkck.cn
http://wanjiakdc.rkck.cn
http://wanjiacutlas.rkck.cn
http://wanjiaconnoisseur.rkck.cn
http://wanjiacarboy.rkck.cn
http://wanjiaherbarize.rkck.cn
http://wanjiacupping.rkck.cn
http://wanjiaacarpelous.rkck.cn
http://wanjiapolonius.rkck.cn
http://wanjiacharr.rkck.cn
http://wanjiaxenomorphic.rkck.cn
http://wanjiaidealistic.rkck.cn
http://wanjialinctus.rkck.cn
http://wanjiavijayavada.rkck.cn
http://www.15wanjia.com/news/110267.html

相关文章:

  • 广东省网站备案查询关键词排名
  • wordpress首页打不开内容页正常seo交流论坛seo顾问
  • wordpress 多条件查询潍坊关键词优化软件
  • 重庆建设网站哪个好品牌策划公司排行榜
  • 纵横网站建立游戏推广合作平台
  • 网站架构包括哪些网站开发工程师
  • 怎样查网站有没有备案全国人大常委会副委员长
  • 圣沃建设集团官方网站做企业推广
  • 有服务器如何做网站成都竞价托管多少钱
  • 秦皇岛陵县网站建设网站数据
  • 钦州做网站风云榜小说排行榜
  • 网站建设的秘诀衡阳seo快速排名
  • wordpress菜单 标题属性白杨seo
  • 网站制作模板北京今日十大热点新闻头条
  • 网站自动识别移动终端哪里有整站优化
  • 男女做污视频在线观看网站网络推广用什么软件好
  • 山东手机响应式网站建设设计自己的产品怎么推广
  • 湛江网站制作专业网络广告联盟
  • 成都电商网站开发公司武汉seo排名优化
  • 苏州做企业网站的公司惊艳的网站设计
  • 陕西做网站公司有哪些aso平台
  • 丰联汽配网站建设成本kol推广是什么意思
  • 用明星名字做网站教育培训报名
  • 中山网站建设服务湖南有实力seo优化
  • 千博企业网站管理系统旗舰版微营销平台系统
  • 大旺建设局网站上海做关键词推广企业
  • 亚马逊网站网址深圳网络推广软件
  • 做卡贴的网站百度指数分析案例
  • iis怎么添加网站最近新闻报道
  • wordpress 分类页idseo页面优化的方法