【leetcode刷题笔记】Search in Rotated Sorted Array
2014-07-17 11:25
176 查看
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
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.
题解:还是按照二分的方法找target。
如果A[l] < A[mid],说明mid以左有序且都小于mid,如下图所示:这种情况下如果target在l和mid之间,那么需要把r重新置为mid;其他情况都需要到mid右端继续搜索。
2.如果A[l] >= A[mid], 说明mid以右有序且都大于mid,如下图所示,如果target在mid和r之间,那么需要把l重新置为mid;其他情况都需要到mid左端继续搜索。
当l + 1 = r的时候,只要检查l和r所指向的元素是否等于target即可。
代码如下:
(i.e.,
0 1 2 4 5 6 7might 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.
题解:还是按照二分的方法找target。
如果A[l] < A[mid],说明mid以左有序且都小于mid,如下图所示:这种情况下如果target在l和mid之间,那么需要把r重新置为mid;其他情况都需要到mid右端继续搜索。
2.如果A[l] >= A[mid], 说明mid以右有序且都大于mid,如下图所示,如果target在mid和r之间,那么需要把l重新置为mid;其他情况都需要到mid左端继续搜索。
当l + 1 = r的时候,只要检查l和r所指向的元素是否等于target即可。
代码如下:
public class Solution { public int search(int[] A, int target) { int l = 0; int r = A.length - 1; while(l + 1< r){ int mid = l + (r-l)/2; if(A[mid] == target) return mid; if(A[l]< A[mid] ){ if(A[mid] >= target && A[l] <= target) r = mid; else { l = mid; } } else { if(target >= A[mid] && target <= A[r]) l = mid; else { r = mid; } } } if(target == A[l]) return l; if(target == A[r]) return r; return -1; } }
相关文章推荐
- leetcode笔记:Search in Rotated Sorted Array
- LeetCode 笔记系列九 Search in Rotated Sorted Array
- 【leetcode刷题笔记】Search in Rotated Sorted Array II
- leetcode笔记:33. Search in Rotated Sorted Array
- leetcode笔记:Search in Rotated Sorted Array
- LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array II
- LeetCode_Search in Rotated Sorted Array
- leetcode 98: Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array
- [LeetCode]Search in Rotated Sorted Array
- LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array
- [LeetCode] Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array
- [Leetcode] Search in Rotated Sorted Array II
- LeetCode —— Search in Rotated Sorted Array
- [Leetcode] Search in a Rotated Sorted Array
- LeetCode : Search in Rotated Sorted Array II
- LeetCode : Search in Rotated Sorted Array
- leetcode 97: Search in Rotated Sorted Array
- [leetcode] Search in Rotated Sorted Array