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

如何制作电脑公司网站关键词怎么优化到百度首页

如何制作电脑公司网站,关键词怎么优化到百度首页,怎么做网站frontpage,安徽工程建设信息网站进皖企业【题目链接】 33. 搜索旋转排序数组 【题目描述】 【题解】 对于一个有序数组,我们可以使用二分查找算法来查找某个元素,具体的算法模板可以参考【算法基础课-算法模板1】基础算法中二分查找一节的内容。 然而,在这道题目中,数组…

【题目链接】
33. 搜索旋转排序数组
【题目描述】
在这里插入图片描述
【题解】
对于一个有序数组,我们可以使用二分查找算法来查找某个元素,具体的算法模板可以参考【算法基础课-算法模板1】基础算法中二分查找一节的内容。
然而,在这道题目中,数组并不是完全有序的,而是经过旋转后,只保证了数组的某一部分是有序的。那么,是否仍然可以使用二分查找算法呢?答案是可以的。我们可以利用旋转数组的性质,通过判断数组的哪一部分是有序的,来调整查找范围,从而有效地应用二分查找算法。
通过观察常规的二分查找算法,我们可以看到 mid 将原本有序的序列划分为 [l, mid][mid+1, r] 两个部分。因此,我们可以借鉴这一思想来解决本题。在这道题中,我们可以通过判断 [l, mid][mid+1, r] 这两部分中哪一部分是有序的,然后根据这个有序部分来调整二分查找的上下边界。具体而言,若某一部分是有序的,我们就可以判断目标值 target 是否位于该有序部分内,从而决定是将查找范围缩小到该部分,还是缩小到另一部分。这种方法使得我们能够在旋转数组中有效地找到目标值。

  • 如果[l, mid]是有序数组,且target的大小满足[nums[l], nums[mid]),则我们应该将搜索范围缩小至[l, mid - 1],否则将搜索范围缩小至[mid + 1, r]
  • 如果[mid, r]是有序数组,且target的大小满足(nums[mid], nums[r]],则我们应该将搜索范围缩小至[mid + 1, r],否则将搜索范围缩小至[l, mid - 1]

例如:
nums=[4,5,6,7,0,1,2],其中l=0,r=6,mid=3[l,mid]是有序数组,
如果target=5,在[l,mid-1]中寻找;
如果target=2,在[mid+1,r]中寻找。
nums=[6,7,0,1,2,3,4,5],其中l=0,r=6,mid=3[mid,r]是有序数组,
如果target=6,在[l,mid-1]中寻找;
如果target=4,在[mid+1,r]中寻找。

【AC代码】

class Solution {
public:int search(vector<int>& nums, int target) {int l = 0, r = nums.size() - 1;while(l <= r) {int mid = l + r >> 1;// 如果找到了目标值,直接返回下标if(nums[mid] == target)return mid;// 判断哪一部分是有序的if(nums[l] <= nums[mid]) { // 左半部分有序if(nums[l] <= target && target < nums[mid]) r = mid - 1; // 目标在左半部分,缩小右边界else //l = mid + 1; // 目标不在左半部分,缩小左边界} else { // 右半部分有序if(nums[mid] < target && target <= nums[r])l = mid + 1;  // 目标在右半部分,缩小左边界elser = mid - 1; // 目标不在右半部分,缩小右边界} }return -1;}
};
http://www.dtcms.com/a/446424.html

相关文章:

  • seo的全称是什么广州关于进一步优化
  • 南京设计网站免费做网站tk
  • YOLO算法原理详解系列 第004期-YOLOv4 算法原理详解
  • 高层次综合的基础-vivado_hls第二章
  • 市面上常见显示屏接口与对应的引脚
  • 天津网站建设方案维护网站开发实践教程
  • 网站源码出售wordpress 3.2.1
  • 西安网站注册个人建设网站成本
  • 初识Protobuf
  • 网站排名首页前三位什么网站百度收录好
  • 现在做什么网站好易搭应用快速开发平台
  • 站长之家商城佛山网站建设十年乐云seo
  • 网站挂黑链工具适合做网站开发的电脑配置
  • 美食网站设计规划书分类网站建设与开发
  • 做网站代理需要办什么营业执照大型手机网站制作
  • 深入理解CAS
  • 响应式网站开发方法系统首页设计
  • 华清远见25072班C++学习假期10.5作业
  • 【系统分析师】2024年下半年真题:综合知识-答案及详解(回忆版)
  • 网站代码的重点内容是什么wordpress 批量建站
  • 密码学系列 - 零知识证明(ZKP) - NTT运算
  • 商城网站建设明细自己弄个网站怎么赚钱
  • Android 系统下 getevent 工具
  • 学院网站建设方案软件开发自学入门教程
  • Deflate在线解压工具(支持无zlib头)
  • win7下winlogon.exe调试记录
  • 网站 做 app开发wordpress插件开发
  • 昆明做网站哪家便宜怎么让付费网站免费
  • 《C++进阶之C++11》【智能指针】(下)
  • 桐城网站定制软件开发的学校有哪些