LeetCode 033 Search in Rotated Sorted Array
2014-08-07 11:58
447 查看
题目
在顺序逆转的数组中,找target的坐标
思路
1 最简单就是从头扫到尾。O(n)
2 查找的技术第一个想到二分查找。关键是因为有颠倒了,怎么办?
3 可以发现每次切分之后,只有一边是颠倒的;所以只要判断哪一边是颠倒的,然后再分类讨论就行了。
代码
15.3.23
注意target判断很容易出错。
在顺序逆转的数组中,找target的坐标
思路
1 最简单就是从头扫到尾。O(n)
2 查找的技术第一个想到二分查找。关键是因为有颠倒了,怎么办?
3 可以发现每次切分之后,只有一边是颠倒的;所以只要判断哪一边是颠倒的,然后再分类讨论就行了。
代码
public class Solution { public int search(int[] A, int target) { if(A.length==0){ return 0; } int start = 0; int end = A.length-1; while(start<=end){ int mid = start + (end - start)/2; if(A[mid]==target){ return mid; } if(A[start]<=A[mid]){ if(A[start]<=target&&target<A[mid]){ end=mid-1; } else start=mid+1; } else{ if(A[mid]<target && target<=A[end]){ start = mid+1; } else{ end = mid-1; } } } return -1; } }
15.3.23
注意target判断很容易出错。
相关文章推荐
- [LeetCode]033-Search In Rotated Sorted Array
- leetcode 033 Search in Rotated Sorted Array
- 2017-09-21 LeetCode_033 Search in Rotated Sorted Array
- leetcode_c++:Search in Rotated Sorted Array(033)
- 【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】
- [LeetCode 033] Search in Rotated Sorted Array
- LeetCode 033 Search in Rotated Sorted Array
- leetcode 033 —— Search in Rotated Sorted Array
- [LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)
- leetcode 033 Search in Rotated Sorted Array
- [LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)
- LeetCode033 Search in Rotated Sorted Array
- leetcode解题方案--033--Search in Rotated Sorted Array
- [LeetCode]题解(python):033-Search in Rotated Sorted Array
- leetcode_033 Search in Rotated Sorted Array
- Java for LeetCode 033 Search in Rotated Sorted Array
- LeetCode 033 Search in Rotated Sorted Array
- 033 Search in Rotated Sorted Array[Leetcode]
- [LeetCode] Search in Rotated Sorted Array
- [LeetCode] Search in Rotated Sorted Array 解题报告