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

企业建站公司网站项目管理系统

企业建站公司,网站项目管理系统,龙岗网站建设哪家技术好,如何删除网站死链题目:33. 搜索旋转排序数组 思路:看到时间复杂度要求是O(log N)很容易想到二分查找,普通的二分查找我们已经掌握,本题中的数组可以看作由两个分别升序的数组拼成,在完全升序的部分中进行二分查找是容易的,…

题目:33. 搜索旋转排序数组

思路:看到时间复杂度要求是O(log N)很容易想到二分查找,普通的二分查找我们已经掌握,本题中的数组可以看作由两个分别升序的数组拼成,在完全升序的部分中进行二分查找是容易的,因此我们每次找到mid后,判断mid左侧为完全升序还是右侧为完全升序,比如,若mid左侧为完全升序,此时如果target的范围在这当中(即nums[i]-nums[mid]中),那么就去左边寻找,否则都去右边。

因此,主要思路为以下几部分:

1、判断哪一侧是完全升序的。nums[l]<nums[mid]则左侧完全升序、否则是右侧。

2、若左侧有序且target在这个范围中,就去左边寻找,否则去右边。

3、若右侧有序且target在这个范围中,就去右边寻找,否则去左边。

4、若找不到则返回-1.

代码:

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

补充:

在二分法中,左右指针的移动和循环条件的细微改变都会引起结果的不同。比如循环条件是while(l<r) 还是 while(l<=r),指针移动方式是l=mid,还是l=mid+1。我没有深入研究原理,只是观察并且猜测while(l<=r)与l=mid+1搭配使用是其中一种正确的方式,也许可以死板地记忆以下。

http://www.15wanjia.com/news/164680.html

相关文章:

  • 济南wordpress 建站wordpress密码hello
  • 运营推广的网站有哪些浙江杭州
  • 网站建设公司巨头佛山建设网站公司哪家好
  • 如何做自己网站云播软件外包公司如何接单
  • 自己怎样建网站网站a记录吗
  • 青少年编程培训教育东莞网站优化什么方法
  • 福建省建设信息网站香奈儿网站建设
  • 电子商务网站建设策划书 服装 有详细数据库设计wordpress外网无法访问
  • 千博企业网站管理系统完整版 2014赞赏分享wordpress代码
  • 广州学做网站网站开发的pc或移动端
  • 购物网站销售管理做搜狗网站排名
  • 把开发的网站让外网能访问要怎么做在线建站|网页制作|网站建设平台
  • 有什么网站可以做3d深圳石岩网站建设
  • seo擦边球网站成都网站建设桔子
  • 前沿设计公司网站东莞保安公司在哪里
  • 网站制作400哪家好网站wordpress签到打卡插件
  • 查排名网站手机h5建站
  • 公司网站空间怎么续费湖北网站开发
  • 做网站用html好还是vue好电商ui设计是什么
  • 网站开发有没有前途蚌埠网站设计
  • 房产资讯什么网站做的好做问卷有哪些网站
  • 河池市住房和城乡建设厅网站网站提交至google
  • 小程序做网站中信建设有限责任公司海外地位
  • 网站html后台模板百度账号登陆入口
  • 织梦如何做中英文版的网站360排名优化
  • wap网站还有能打开的吗办公系统常用的有哪些
  • 外贸网站推广技巧网站建设域名注册
  • 怎么用vs2010做网站给网站添加代码
  • 网站开发语言版本不同网站建设建立好如何盈利
  • 如何优化企业网站建设部颁发的证书网站