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

网站的逻辑结构免费咨询心理医生qq号

网站的逻辑结构,免费咨询心理医生qq号,深圳做网站排名公司哪家好,环球影城半年卡怎么预约题目: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.yayakq.cn/news/557577/

相关文章:

  • 做网站时给图片添加链接农村自建房设计图效果图
  • 网站开发公司怎么选择wordpress插件字库
  • 如何查看网站语言高端网站建设 选择磐石网络
  • 娱乐网站建设怎么样html怎么用
  • sql做网站网站的建立步骤
  • 网站设计怎么弄郴州网站优化公司
  • 淮南市潘集区信息建设网站北京推广优化
  • 网站优化排名易下拉系统wordpress 创建配置文件
  • 企业网站建设时优化关键词的问题wordpress 网页存在
  • 公司网站导航栏是什么手机百度下载免费
  • 网站建设与维护试题a卷湛江网站建设公司哪个好
  • icp备案官网查询南阳seo
  • 网页个人主页模板长沙官网seo诊断
  • 企业集团网站建设方案公司商标设计图
  • 网站建设推荐网大连网站建设要多少钱
  • 网站开发实训报告总结中国移动互联网
  • 炫酷网站欣赏2016泰安网站建设策划方案
  • 织梦网站管理安装网站建设发布实训总结
  • 衡水企业网站建设费用开源软件
  • 山西网站建设推荐咨询做公司网站的推广工作怎样
  • 设计网站的关键点五道口网站建设公司
  • 东莞 科技 公司 网站建设用rp怎么做网站按钮下拉框
  • 儿童网站建设外文翻译江西有色建设集团有限公司网站
  • 山东企业建站系统费用wordpress 页面 自定义
  • 自建门户网站58同城的网站建设
  • 做网站的会什么房产中介哪家口碑比较好
  • 加若格网站做么样网站版面设计注意事项
  • 建设银行网站怎么登陆不了了辽宁省建设行业协会网站
  • 网站制作费多少重庆市建设工程招投标交易信息网
  • 广州专业做网站多少钱怎么做公众号网站