推广 热搜: 可以  企业  page  搜索引擎  行业  百度    个数  使用  选择 

国际网站哪里做/刷关键词排名seo

   日期:2024-12-20     移动:http://ww.kub2b.com/mobile/quote/7643.html

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组  可能变为  )。

搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回  。

你可以假设数组中不存在重复的元素。

你的算法时间复杂度必须是 O(log n) 级别。

示例 1:

输入: nums = [, target = 0
输出: 4

示例 2:

输入: nums = [, target = 3
输出: -1

  这道题如果复杂度是O(log n),那显然就只能是二分搜索算法了。我们把实例放到折线图上,如下所示

  发现,其实相当于对两个已排序数组进行二分搜索,并且第一个数组的最小值(4,5,6,7)仍然大于第二个数组(0,1,2)的最大值。

  所以我们要开始分情况讨论了:如果说MID值大于LEFT值,说明MID和LEFT一定在同一个数组中,那此时如果目标值小于MID大于LEFT,很显然我们要将RIGHT移动到MID位置。

  如果目标值大于MID大于LEFT,LEFT就要移动到MID的下一个位置。

  还有一种情况就是说,目标值小于LEFT,LEFT也要移动到MID的下一个位置来缩小范围。

   同理在右边数组的处理逻辑和上面很相似。 

  

本文地址:http://ww.kub2b.com/quote/7643.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号