博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode】Search in Rotated Sorted Array
阅读量:6557 次
发布时间:2019-06-24

本文共 1036 字,大约阅读时间需要 3 分钟。

在旋转的无重复的排序数组中查找某个数,要求时间复杂度O(logN)

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.

思路:使用二分查找,若中间数大于等于最左端数,那左半部分必定有序,否则右半部分有序,通过将目标数与有序部分的最大与最小数比较就可以判断目标数位于哪一部分。代码如下:

 

class Solution{public:	int search(int A[], int n, int target) 	{		return search(A,0,n-1,target);	}	int search(int *ary, int start, int end, int target)	{		if (start > end) return -1;		int mid = start + ((end-start)>>1);		int number0 = ary[start];		int number = ary[mid];		int number1 = ary[end];		if (number == target) 			return mid;		if (number >= number0)		{			if(target < number0 || target > number)				return search(ary,mid+1,end,target);			else				return search(ary,start,mid-1,target);		}				// number < number0		if (target > number1 || target < number)			return search(ary,start,mid-1,target);				return search(ary,mid+1,end,target);	}};

 

 

转载地址:http://kmqco.baihongyu.com/

你可能感兴趣的文章
Laravel5.5 使用第三方Vendor添加注册验证码
查看>>
06- Linux下sublime下载与使用
查看>>
前端文摘:Web 开发模式演变历史和趋势
查看>>
将图片序列转化为视频文件
查看>>
jQuery的文档操作***
查看>>
CODING Pages 服务全面升级,更快更稳更可靠!
查看>>
关于DOM操作的案例
查看>>
js 小数取整,js 小数向上取整,js小数向下取整
查看>>
从头到尾彻底理解KMP
查看>>
mysql 自定义函数与自定义存储过程的调用方法
查看>>
vue-cli3.0
查看>>
“玩具新势力”葡萄科技能带来哪些新变化
查看>>
window.location.replace vs window.location.href
查看>>
CVPR 2018:阿里提出应用 LocalizedGAN 进行半监督训练
查看>>
什么是区块链?
查看>>
美国科技巨头试图掀起一场悄无声息的应用革命
查看>>
「人物特写」工程院院士谭建荣:马云不是制造业的杀手,工业机器人也不是救命良药...
查看>>
高红冰:新零售发展的三大驱动力和三大趋势
查看>>
被劫持的wordpress.com账户被用来感染站点
查看>>
哄宝宝入睡不再发愁,福特发布Max Motor Dreams智能婴儿床
查看>>