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

杭州湾新区开发建设公司网站常用的网络营销方法及效果

杭州湾新区开发建设公司网站,常用的网络营销方法及效果,淄博网站建设网宽,免费模板下载免费版搜索旋转排序数组 那……二分法呗 数组中的数可以相同 比 33. 搜索旋转排序数组 多了一个「有重复元素」,导致无法根据 num > nums[0] 来判断 num 在哪一半,比如 [1,1,1,1,1,2,1,1,1] 旋转数组两头相等,元素 1 可能在左半边可能在右半边 …

搜索旋转排序数组

那……二分法呗
数组中的数可以相同

比 33. 搜索旋转排序数组 多了一个「有重复元素」,导致无法根据 num >= nums[0] 来判断 num 在哪一半,比如
[1,1,1,1,1,2,1,1,1] 旋转数组两头相等,元素 1 可能在左半边可能在右半边
解决方法也很简单,只要把「旋转数组两头相等」这种特殊情况排除掉就行了

排除掉旋转数组两头相等的情况后,再像33一样判断从哪分
因为只旋转了一次,所以数组分为两段,两端分别是排序数组,那么mid一定会落入其中一种排序好的数列里
如果mid比start大,那么前一半是排序数组,如果mid比end小,那么后一半是排序数组
二分法的难点是代码的细节
以下引用自大佬的题解

第一类 1 0 1 1 1这种。此种情况下 nums[start] == nums[mid],分不清到底是前面有序还是后面有序,此时 start++ 即可。相当于去掉一个重复的干扰项。
第二类 2 3 4 5 6 7 1这种,也就是 nums[start] < nums[mid]。此例子中就是 2 < 5; 这种情况下,前半部分有序。因此如果 nums[start] <=target<nums[mid],则在前半部分找,否则去后半部分找。
第三类 6 7 1 2 3 4 5这种,也就是 nums[start] > nums[mid]。此例子中就是 6 > 2; 这种情况下,后半部分有序。因此如果 nums[mid] <target<=nums[end]。则在后半部分找,否则去前半部分找。

class Solution {
public:bool search(vector<int>& nums, int target) {int start=0;int end=nums.size()-1;int mid;while(start<=end){mid=start+(end-start)/2;if(nums[mid]==target)return true;if(nums[start]==nums[mid])start++;else if(nums[start]<nums[mid]){if(nums[start]<=target&&nums[mid]>target)end=mid-1;else{start=mid+1;}}else{if(nums[end]>=target&&nums[mid]<target)start=mid+1;else end=mid-1;}}return false;}
};
http://www.hrbkazy.com/news/25560.html

相关文章:

  • 购房者网站今日新闻头条官网
  • 门户网站建站方案色盲眼中的世界
  • 网站好的案例数据分析师报考条件
  • 网站设计主题选择企业管理培训班
  • 班级博客网站模板哈尔滨网络优化公司有哪些
  • 利用ionic做的网站软文写作的三个要素
  • 石家庄网站开发公司电话全球搜索引擎入口
  • 网站建设项目wbs分解友情链接怎么做
  • 私募基金网站怎么做seo江北seo
  • 创业网站建设怎么样免费seo关键词优化排名
  • 西安有关做网站的公司有哪些百度sem竞价推广电子书
  • 找公司做网站运营怎么样电子商务主要学什么就业方向
  • 营销型网站建站教程seo服务深圳
  • 可以找人帮忙做设计的网站网络推广哪个好
  • 临海建设规划信息网网站人工智能培训心得
  • 免费做图片链接网站电脑培训班多少费用
  • 罗湖做网站哪家好画质优化app下载
  • 哪个网站做演唱会门票开源cms建站系统
  • 怎么做网站服务百度点击软件还有用吗
  • 免费咨询中心厦门网站优化公司
  • 博罗网站建设黑龙江新闻头条最新消息
  • 深圳企业网站建设设计制作方案今日头条最新消息
  • 爱做网站网址哈尔滨最新
  • 怎么做直播网站太原seo霸屏
  • 网站建设三剑客推广方式有哪些?
  • 沛县网站定制搜索关键词推荐
  • 泉州市住房与城乡建设网站百度付费推广的费用
  • 做网站 报价 需要了解国际新闻最新消息中国
  • 公司想做个自己的网站怎么做的社群营销案例
  • 做网站需要学什么专业seoaoo