33 Search in Rotated Sorted Array

原创 2016年05月31日 22:13:47


直接二分,例如原数组{0,1,2,4,5,6,7}   旋转为 {7,0,1,2,4,5,6}


找到数组中间位置,分成左右两半 {7,0,1,2} 和 {4,5,6}


比较数组的两端的元素大小,利用原数组是有序的这个重要性质: 如果满足ele[lo]<=ele[hi],此时表明不含旋转点,可直接二分查找。


若不满足ele[lo]<=ele[hi],表明包含旋转点,继续二分数组


public int search(int[] nums, int target)
	{
		return searchaux(nums, target, 0,nums.length-1);
	}
	
	public int searchaux(int[] nums,int target,int lo,int hi)
	{
		int ret=-1;
		if(nums[lo]<=nums[hi])
			ret=Arrays.binarySearch(nums, lo, hi+1, target);
		else {
			int mid=(lo+hi)>>1;
			int a=searchaux(nums, target, lo, mid);
			int b=searchaux(nums, target, mid+1, hi);
			ret=Math.max(a, b);
			
		}
		
		if(ret<0)
			ret=-1;
		return ret;
	}


版权声明:本文为博主原创文章,未经博主允许【可以】转载

【LeetCode-面试算法经典-Java实现】【153-Find Minimum in Rotated Sorted Array(找旋转数组中的最小数字)】

【153-Find Minimum in Rotated Sorted Array(找旋转数组中的最小数字)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Suppose...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月21日 06:24
  • 1832

循环有序数组中的二分查找 Search in a rotated sorted array

二分查找是必须要掌握的技能。二分查找适用于有序的、顺序的存储结构。 1、可以用它来查找某一个数 2、可以用于查找某一个范围。如《二分查找有序数组中某个数的所在范围 Search for a Rang...
  • luckyjoy521
  • luckyjoy521
  • 2013年12月22日 19:16
  • 2103

Rotated Sorted Array(旋转数组总结)

首先什么叫旋转数组,把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转。对于这样的数组,我们可以画一下的一个图来表示。 ...
  • willduan1
  • willduan1
  • 2016年12月17日 09:50
  • 4714

leetcode解题之33&81. Search in Rotated Sorted Array java版(在旋转的数字中查找指定值)

33. Search in Rotated Sorted Array ,81. Search in Rotated Sorted Array II 。 leetcode解题之33&81. Search...
  • mine_song
  • mine_song
  • 2017年04月09日 22:58
  • 236

leetcode33_Search in Rotated Sorted Array

一.问题描述 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 ...
  • u014265088
  • u014265088
  • 2016年10月29日 17:35
  • 127

leetcode(33). Search in Rotated Sorted Array

problem Suppose an array sorted in ascending order is rotated at some pivot unknown to you befo...
  • PKU_Jade
  • PKU_Jade
  • 2017年07月26日 16:30
  • 115

LeetCode OJ 33 Search in Rotated Sorted Array

难度:hard 由此可见leetcode的hard难度比较于acm是偏简单一些的。 Suppose a sorted array is rotated at some pivot unkn...
  • LLL_mj
  • LLL_mj
  • 2015年07月06日 18:21
  • 321

[leetcode] 33. Search in Rotated Sorted Array

Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 mig...
  • TstsUgeg
  • TstsUgeg
  • 2016年01月22日 19:18
  • 173

Leetcode 33 - Search in Rotated Sorted Array(二分)

题意给一个有序数组,然后从数组的某一个位置,将前后两半交换。现在给一个数k,求k在数组中出现的位置,如果没有出现,返回-1。思路算法1画个图,其实就两种情况:前半段长还是后半段长,然后分若干种情况去讨...
  • Lzedo
  • Lzedo
  • 2017年02月13日 16:44
  • 89

33/81. Search in Rotated Sorted Array I/II(C++)

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e.,...
  • Crystal_ting
  • Crystal_ting
  • 2017年06月26日 00:00
  • 112
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:33 Search in Rotated Sorted Array
举报原因:
原因补充:

(最多只允许输入30个字)