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

广东建设厅网站首页辛集外贸网站建设

广东建设厅网站首页,辛集外贸网站建设,软件开发需要学什么知识,牛商网 做的p2p网站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.yayakq.cn/news/438194/

相关文章:

  • 西安浐灞生态区规划建设局网站阿里巴巴是搭建的网站吗
  • 哪个网站做视频有钱挣做网站怎么报价
  • 营销型网站建设需要多少钱网站悬挂备案号
  • 购物网站开发历史如何得知网站有没有做推广
  • 淘宝优惠群的网站是怎么做做家政网站公司名称
  • 个人网站备案费用哪些网站做的最好
  • 社区类网站开发实践学习html的网站
  • 可以用服务器做网站优化网站公司
  • 字体设计网站大全网站开发总结与收获
  • 便宜网站设计怎么查询网站备案服务商是哪个
  • 珠海建设工程网站广州网络引流公司
  • wordpress如何设置目录权限公司seo排名优化
  • 中文网站建设技术解决方案1688是什么平台
  • 网站建设公司销售招聘高端网站制作网址
  • 什么网站做3d模型能赚钱青岛搭建公司
  • 郴州网站建设培训扁平化蓝色网站
  • 下载好的网站模板怎么用如何用手机建设一个网站
  • 网站主页布局企业年金指的是什么
  • 网站栏目内容php网站开发案例详解
  • 4k中国视频素材网站自己如何注册网站
  • 网站视觉设计方案网站建设公司哪个好做
  • 微网站的建设在线建网址
  • 网站建设开发 脚本语言怎么了解百度蜘蛛到哪个网站
  • 网站开发人员知乎百度指数关键词工具
  • 自学网站建设看哪本书定制网站建设济南
  • 推广一个网站周期石家庄什么时候能解封
  • 建设网站网址wordpress 注册 登陆
  • 有哪些专门做减肥内容的网站wordpress 常用工具
  • 宁波建站方案广告设计公司任务书
  • 汽车网站策划最新的网络项目代理