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

临沂手机端建站模板代运营电商公司

临沂手机端建站模板,代运营电商公司,昆明云南微网站制作,免费域名 主机x 的平方根 在0~X中肯定有数的平方大于X&#xff0c;这是肯定的。我们需要从中找出一个数的平方最接近X且不大于X。0~X递增&#xff0c;它们的平方也是递增的&#xff0c;这样我们就可以用二分查找。 我们找出的数的平方是<或者恰好X&#xff0c;所以把0~X的平方分为<X …

 x 的平方根 

在0~X中肯定有数的平方大于X,这是肯定的。我们需要从中找出一个数的平方最接近X且不大于X。0~X递增,它们的平方也是递增的,这样我们就可以用二分查找。

我们找出的数的平方是<或者恰好==X,所以把0~X的平方分为<=X >X的两部分,求<=区间的最右端

class Solution {
public:int mySqrt(int x) {long long left=0,right=x;while(left<right){long long mid=left+(right-left+1)/2;if(mid*mid<=x) left=mid;else right=mid-1;}return left;}
};

long long防止超出int范围

搜索插入位置

递增数组,找到相等返回下标,反正按顺序插入(恰好比target大的值),也就是目标值>=target。把区间分为<target >=target,找右区间左端

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left=0,right=nums.size()-1;while(left<right){int mid=left+(right-left)/2;if(nums[mid]<target) left=mid+1;else right=mid;}if(nums[left]<target) left++;//left恰好是数组最后一个元素return left;}
};

山脉数组的峰顶索引

这段数组可以分成两部分,前一部分递增 后一部分递减。

这样我们就可以用二分查找,如果mid处于递增位置,那么目标值肯定在右边。反之,左边。

下面有两种做法,不同点在于把峰值看做是递增数组上还是递减数组上,在递增数组就是求右端点,在递减数组就是求左端点。

峰值属于递减数组,求左端点

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

因为mid可能正好是目标值,不能跟后面的值比较,后面是递增数组的。

峰值属于递增数组,求右端点

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

寻找峰值

有三中情况一直递增 / 一直递减 \ 既有递增又有递减 /\/\/\/\

但无论那种情况,如果是递增那它的右边一定有峰值,如果递减它的左边一定有峰值。

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

把峰值看作递增的部分,如果nums[mid]>nums[mid-1]说明递增,那么mid可能是峰值,所以left不能=mid+1,left=mid,让right从右边找过来。

http://www.yidumall.com/news/34417.html

相关文章:

  • 做旅游网站的软文范例大全200字
  • 杭州公司的网站建设公司中国网络营销公司
  • 鸿鹄网站建设网络营销推广seo
  • 饿了么网站怎么做的北京百度推广代理公司
  • 做电影网站考什么网络推广工作是做什么的
  • 信誉好的营销网站建设网络营销方式对比分析
  • 做毕业网站的周记抖音seo排名软件哪个好
  • 河北省住房城乡建设局网站首页企业营销策略
  • 开网店要建网站平台吗北京seo如何排名
  • 郴州信息港网站哈尔滨百度网络推广
  • 给网站做公正需要带什么营销策略有哪些有效手段
  • 在线做头像的网站搜索引擎营销特点是什么
  • 网站不能复制 设置东莞网络营销销售
  • 羊绒制品有限公司网站建设论文免费网站制作平台
  • 网站长图怎么做未来网络营销的发展趋势
  • 网站制作怎样做背景服务网站推广方案
  • 网站推广的8种方法semir是什么意思
  • 做网站和软件有区别吗九江seo
  • 智能自助建站网站镇江网站建设推广
  • 私自使用他人图片做网站宣传备案查询站长之家
  • 广告设计服务seo推广网站
  • 免备案网站怎么收录网站优化seo教程
  • 做威士忌的网站湖北网站建设制作
  • 建设网站的企业名称大型门户网站建设
  • 微信公众号的子菜单网页怎么制作如何分步骤开展seo工作
  • 做煤层气的网站软件推广
  • 网站大致内容seo网站外链平台
  • 天津做公司网站长沙百度百科
  • 个人网站建设方案书例文排名优化公司哪家靠谱
  • .net网站开发岗位网络营销是什么意思