89_leetcode_Search in Rotated Sorted Array II
来源:互联网 发布:centos 7.3 lnmp 编辑:程序博客网 时间:2024/04/28 09:10
Search in rotated Sorted Array; 如果数组中包含重复的数字
1:特殊情况;2:数组没有旋转;3:找到数组旋转的两部分,如果在寻找的过程中,三个(start, end, middle)索引的数字相同, 直接返回顺序查找的结果;3:找到两部分,对数字进行二分查找
bool search(int A[], int n, int target) { if(A == NULL || n <= 0) { return false; } if(A[0] < A[n-1]) { return BinarySearch(A,0, n-1, target); } int start = 0; int end = n - 1; while(start < end - 1) { int middle = (start + end) / 2; if(A[middle] == A[start] && A[middle] == A[end]) { return linearSearch(A, n, target); } else if(A[middle] <= A[end]) { end = middle; } else if(A[middle] >= A[start]) { start = middle; } } if(A[n-1] >= target && A[end] <= target) { return BinarySearch(A, end, n - 1 , target); } else if(A[start] >= target && A[0] <= target) { return BinarySearch(A, 0, start, target); } else { return false; } } bool linearSearch(int A[], int n, int target) { for(int i = 0; i < n; i++) { if(A[i] == target) { return true; } } return false; } bool BinarySearch(int A[], int start, int end, int target) { while(start <= end) { int middle = (start + end) / 2; if(A[middle] == target) { return true; } else if(A[middle] > target) { end = middle - 1; } else { start = middle + 1; } } return false; }
0 0
- 89_leetcode_Search in Rotated Sorted Array II
- 20_leetcode_Search in Rotated Sorted Array
- LeetCode: Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- LeetCode : Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- LeetCode-Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Python 获取两个话题的交集
- JS计算网页停留时间实例代码(www.jbxue.com)
- 仿iphone原生的时钟程序
- 结构体定义 typedef struct 用法详解和用法小结
- hdu 4267 分组线段树
- 89_leetcode_Search in Rotated Sorted Array II
- ubuntu中配置完美Vim
- 90_leetcode_Unique Binary Search Trees
- 91_leetcode_Unique Binary Search Trees II
- JAVA线程中的生产者和消费者问题
- svn服务器和客户端的创建和管理
- svn服务器和客户端的创建和管理(二)
- java.util.concurrent包(4)——Callable和Future
- Sina weibo access api (新浪微博接口)