LeetCode OJ 33 Search in Rotated Sorted Array

原创 2015年07月06日 18:21:08

难度:hard

由此可见leetcode的hard难度比较于acm是偏简单一些的。

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.

解题思路:采用二分法查找是核心。由于数列的变换是在有序数列的基础上,则假如在二分时若一半无序则另一半会有序,判断逻辑放在有序的一侧即可。注意边界值,不要迷信AC的案例代码,因为我个人测试过一些ac代码在边界情况时会出现错误。

代码如下:

class Solution {
public:
    int search(vector<int>& nums, int target) {
		int first=0;
		int last=nums.size()-1;
		while(first!=last)
		{
			const int mid=first+(last-first)/2;
			if(nums[mid]==target)
				return mid;
			if(nums[first]<=nums[mid])
			{
				if(nums[first]<=target&&target<nums[mid])
					last=mid;
				else
					first=mid+1;
			}
			else
			{
				if(nums[mid]<target&&target<=nums[last])
					first=mid+1;
				else
					last=mid;
			}
		}
		if(nums[last]==target)
			return last;
		else
			return -1;
        
    }
};
运行时间:4ms

[LeetCode]33.Search in Rotated Sorted Array

【题目】 Search in Rotated Sorted Array  Total Accepted: 5827 Total Submissions: 20925My Submissions...
  • SunnyYoona
  • SunnyYoona
  • 2014年01月15日 17:18
  • 2563

LeetCode 33 — Search in Rotated Sorted Array(C++ Java Python)

题目:http://oj.leetcode.com/problems/search-in-rotated-sorted-array/ Suppose a sorted array is rotate...
  • dragon_dream
  • dragon_dream
  • 2014年04月03日 14:20
  • 1527

Search in Rotated Sorted Array -- LeetCode

原题链接: http://oj.leetcode.com/problems/search-in-rotated-sorted-array/  这道题是二分查找Search Insert Positi...
  • linhuanmars
  • linhuanmars
  • 2014年03月05日 09:15
  • 19310

[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 5 6 7 mig...
  • sbitswc
  • sbitswc
  • 2014年06月16日 00:54
  • 1371

Search in Rotated Sorted Array II -- LeetCode

原题链接: http://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/  这道题是二分查找Search Insert Pos...
  • linhuanmars
  • linhuanmars
  • 2014年03月06日 02:04
  • 17862

[C++]LeetCode: 43 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 ...
  • cinderella_niu
  • cinderella_niu
  • 2014年12月11日 21:54
  • 598

【LeetCode】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 ...
  • ljiabin
  • ljiabin
  • 2014年10月25日 17:00
  • 9810

leetcode 81. Search in Rotated Sorted Array II-旋转数组|二分查找

原题链接:81. Search in Rotated Sorted Array II 【思路-Java、Python】 二分查找实现 本题采用二分法实现,但是比较挠头的是边界问题,而且元素有重复,...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年06月07日 11:34
  • 1443

[leetcode] 33. Search in Rotated Sorted Array 解题报告

题目链接:https://leetcode.com/problems/search-in-rotated-sorted-array/ Suppose a sorted array is rotat...
  • qq508618087
  • qq508618087
  • 2016年01月03日 14:14
  • 436

【LEETCODE】33-Search in Rotated Sorted Array [Python]

Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 mig...
  • aliceyangxi1987
  • aliceyangxi1987
  • 2016年01月22日 11:26
  • 1008
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode OJ 33 Search in Rotated Sorted Array
举报原因:
原因补充:

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