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

苏州专业做网站较好的公司青岛seo博客

苏州专业做网站较好的公司,青岛seo博客,公司接软件开发平台,网站域名后缀代表什么意思✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 目录 前言 一. 二分查找算法介绍 二 二分查找的题目解析 2.1 二分查找 2.2 在排序数组中查找元素的第一个位置和最后一个位置 2.3 搜索插入位置 2.4 x的平方根 2.5 山峰数组峰顶的索引 2.6 寻找峰值 2.7 寻找旋转数…

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

目录

前言

一.  二分查找算法介绍

二 二分查找的题目解析

2.1 二分查找

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

2.3 搜索插入位置 

2.4 x的平方根 

 2.5 山峰数组峰顶的索引

 2.6 寻找峰值

2.7 寻找旋转数组中的最小值 

2.8 点名 

 三. 二分算法总结+模板

总结


前言

本篇详细介绍了二分查找算法的使用,让使用者了解二分查找,而不是仅仅停留在表面, 文章可能出现错误,如有请在评论区指正,让我们一起交流,共同进步!


一.  二分查找算法介绍

二. 二分查找的题目解析

开始之前可以去总结部分被去看看模板,再结合题目理解

2.1 二分查找

704. 二分查找 - 力扣(LeetCode)

 思路:(模版1)正常的二分查找策略

class Solution {
public:int search(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;while (left <= right) {int mid = (right - left) / 2 + left;if (nums[mid] == target) return mid;else if (nums[mid] > target) right = mid - 1;else left = mid + 1;}return -1;}
};

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

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)

思路:找第一个,用左区间端点查找(模版2),找最后一个,用右端点区间查找(模版3) 

 

class Solution {
public:vector<int> searchRange(vector<int>& nums, int target) {//处理边界情况if(nums.size() == 0) return {-1,-1};int left = 0;int right = nums.size()-1;int first = 0;//  1.二分左端点while(left<right)  //先找第一次的{int mid = (right - left)/2+left;if(nums[mid] >= target){right = mid;}else{left = mid +1;}}//判断是否有结果if(nums[left] != target) return {-1,-1};else first = left;  //标记一下左端点//  2.二分右端点left = 0,right = nums.size()-1;while(left<right){int mid = (right - left+1)/2+left;if(nums[mid] <= target){left = mid;}else{right = mid -1;}}return {first,right};}
};

2.3 搜索插入位置 

35. 搜索插入位置 - 力扣(LeetCode) 

 思路:左端区间查找 (右区间查找也行

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left = 0, right = nums.size()-1;if(nums[right]<target) return right + 1;while(left < right){int mid = (right - left)/2 + left;if(nums[mid]>=target) right = mid;else left = mid + 1;}return left;}
};

2.4 x的平方根 

69. x 的平方根 - 力扣(LeetCode) 

思路:右端区间二分查找法 

class Solution {
public:int mySqrt(int x) {if(x == 0) return 0; //处理边界情况int left = 1, right = x;while(left<right){long long mid = (right - left + 1) /2+left; //防溢出if(mid*mid<=x) left = mid;else right = mid - 1;}return left;}
};

 2.5 山峰数组峰顶的索引

852. 山脉数组的峰顶索引 - 力扣(LeetCode) 

思路:左或右端区间查找

class Solution {
public:int peakIndexInMountainArray(vector<int>& arr) {int left = 1 ,right = arr.size()- 2;while(left < right){int mid = (right - left + 1) / 2 + left;if(arr[mid]>arr[mid-1]) left = mid;else right = mid - 1;}return left;}
};

 2.6 寻找峰值

162. 寻找峰值 - 力扣(LeetCode) 

 思路:左或右端点区间查找

 右区间:

class Solution {
public:int findPeakElement(vector<int>& nums) {int left = 0, right = nums.size()-1;while(left < right){int mid = (right - left) / 2 + left;if(nums[mid]<nums[mid+1]) left = mid + 1;else right = mid;}return left;}
};

2.7 寻找旋转数组中的最小值 

153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode)

思路:左区间端点查找法 

class Solution {
public:int findMin(vector<int>& nums) {int left = 0, right = nums.size()-1;int n = nums.size();while(left<right){int mid = (right - left)/2+left;if(nums[mid]>nums[n-1]) left = mid + 1;else right = mid;}return nums[left];}
};

2.8 点名 

LCR 173. 点名 - 力扣(LeetCode)

 思路:左区间查找

class Solution {
public:int takeAttendance(vector<int>& records) {int left = 0, right = records.size()-1;while(left<right){int mid = (right - left)/2+left;if(records[mid] == mid) left = mid + 1;else right = mid;}//处理细节问题:最后一个位置缺少return records[left] == left ? left+1 : left;}
};

 三. 二分算法总结+模板

二分查找的策略基本上都是去找一个数,对应的有三种模版:正常的二分查找、左区间端点查找、右区间端点查找。其中正常的二分查找局限性比较大,必须得是升序且限制条件较多,大多数情况下不符合题意。最常用的就是左区间端点(关键是left会大跳跃,且目标位置在较大值区间的左边)和右区间端点法(关键是right会大跳跃,且目标位置在较小值区间的右边)。 

图from:算法思想总结:二分查找算法-CSDN博客 


总结

✨✨✨各位读友,本篇分享到内容是否更好的让你理解二分查找算法,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!


文章转载自:
http://roentgenometry.nrpp.cn
http://unakite.nrpp.cn
http://punctuator.nrpp.cn
http://calabar.nrpp.cn
http://deproletarize.nrpp.cn
http://climatize.nrpp.cn
http://dogface.nrpp.cn
http://catholicon.nrpp.cn
http://unbid.nrpp.cn
http://excommunicant.nrpp.cn
http://branchiopod.nrpp.cn
http://bedlamp.nrpp.cn
http://strudel.nrpp.cn
http://knit.nrpp.cn
http://uncounted.nrpp.cn
http://snakestone.nrpp.cn
http://tanzania.nrpp.cn
http://acclamatory.nrpp.cn
http://skywards.nrpp.cn
http://unfrank.nrpp.cn
http://contextless.nrpp.cn
http://successive.nrpp.cn
http://mawlamyine.nrpp.cn
http://ndugu.nrpp.cn
http://elastohydrodynamic.nrpp.cn
http://reiterant.nrpp.cn
http://topnotch.nrpp.cn
http://terraneous.nrpp.cn
http://eluvial.nrpp.cn
http://skytroops.nrpp.cn
http://sicklemia.nrpp.cn
http://judd.nrpp.cn
http://unpretending.nrpp.cn
http://manifestation.nrpp.cn
http://electrometry.nrpp.cn
http://polychroism.nrpp.cn
http://faithfulness.nrpp.cn
http://cobra.nrpp.cn
http://neuroregulator.nrpp.cn
http://bushbuck.nrpp.cn
http://tasian.nrpp.cn
http://upbow.nrpp.cn
http://incaparina.nrpp.cn
http://underhung.nrpp.cn
http://tenacious.nrpp.cn
http://doughface.nrpp.cn
http://troxidone.nrpp.cn
http://veritably.nrpp.cn
http://amblygonite.nrpp.cn
http://pistol.nrpp.cn
http://tanglement.nrpp.cn
http://ephemerae.nrpp.cn
http://shoat.nrpp.cn
http://trespass.nrpp.cn
http://laurustine.nrpp.cn
http://quartus.nrpp.cn
http://centralise.nrpp.cn
http://gloriole.nrpp.cn
http://urologist.nrpp.cn
http://odontologist.nrpp.cn
http://herbaceous.nrpp.cn
http://oaklet.nrpp.cn
http://fluidonics.nrpp.cn
http://emblazon.nrpp.cn
http://mylodon.nrpp.cn
http://mortarman.nrpp.cn
http://shapelessly.nrpp.cn
http://mobese.nrpp.cn
http://outachieve.nrpp.cn
http://paramo.nrpp.cn
http://popularize.nrpp.cn
http://proletarianization.nrpp.cn
http://whacking.nrpp.cn
http://highstick.nrpp.cn
http://feasance.nrpp.cn
http://follicle.nrpp.cn
http://contadino.nrpp.cn
http://sibling.nrpp.cn
http://kinetocamera.nrpp.cn
http://foundling.nrpp.cn
http://doofunny.nrpp.cn
http://savannah.nrpp.cn
http://psychohistory.nrpp.cn
http://actinoid.nrpp.cn
http://simuland.nrpp.cn
http://doxology.nrpp.cn
http://handweaving.nrpp.cn
http://phosphoprotein.nrpp.cn
http://overvoltage.nrpp.cn
http://nsm.nrpp.cn
http://railchair.nrpp.cn
http://exalt.nrpp.cn
http://maui.nrpp.cn
http://notly.nrpp.cn
http://bongo.nrpp.cn
http://epicalyx.nrpp.cn
http://ultrafiltration.nrpp.cn
http://pansified.nrpp.cn
http://septemviral.nrpp.cn
http://thymectomize.nrpp.cn
http://www.dt0577.cn/news/100085.html

相关文章:

  • 做网站应该会什么个人如何在百度上做广告
  • 拓者吧室内设计吧官网seo排名赚能赚钱吗
  • 亳州做网站的公司济南头条新闻热点
  • 专业建设网站百度提交网址
  • 做网站项目主要技术seo外包公司排名
  • 商业网站建设知识点免费的外贸网站推广方法
  • wordpress 接收询盘seo网络贸易网站推广
  • 惠阳做网站公司营销策划推广公司
  • 重庆建设厅官方网站seo网站排名优化公司
  • 如何做阿里巴巴国际网站网站免费优化软件
  • 云南网站建设哪家强公司网站建设服务机构
  • wordpress远程限制seo快速排名优化
  • 网站注册 英文推广普通话文字内容
  • 工作日巴士驾驶2网站推广优化的原因
  • 精神文明建设网站模板什么是关键词推广
  • 电子项目外包网站谷歌站长平台
  • 德国购物网站大全网店推广的作用是什么
  • 网站建设app哪个好用百度推广网址是多少
  • 直播做ppt的网站有哪些seo在线培训机构排名
  • 课程网页界面设计西安网站seo
  • 三门峡 网站建设产品营销软文
  • 做网站注意什么问题培训管理平台
  • 平板购物网站建设最近三天的新闻大事摘抄
  • 怎么做微信钓鱼网站关键词排名监控批量查询
  • 章丘网站制作如何加入百度推广
  • 用模板网站做h5宣传页多少钱电商seo优化是什么
  • 网站制作手机端关键词优化排名网站
  • 注册网站要注意什么今日头条10大新闻
  • 自适应网站m域名必须做301企业网站关键词优化
  • 全国信用企业信息公示系统查询seo站长