Search in Rotated Sorted Array解题报告
来源:互联网 发布:money for mac 破解版 编辑:程序博客网 时间:2024/06/02 16:47
两种方法
1、首先找到两个数组的分界,然后在两个数组上分别应用二分查找
int bsearch(int A[], int start, int end, int target){while(start <= end){int mid = (start + end) >> 1;if(target == A[mid])return mid;else if(target > A[mid]){ start = mid + 1; }else{ end = mid - 1; }}return -1;}//Runtime: 7msint search(int A[], int n, int target) { int preMax = 0;int aftMin = 0;for(int i = 1; i < n; ++i){if(A[i] < A[i - 1]){preMax = i - 1;aftMin = i;break;}}int idx = -1;if(target >= A[0] && target <= A[preMax]){idx = bsearch(A, 0, preMax, target);}else{idx = bsearch(A, aftMin, n - 1, target);}return idx; }
2、直接在原数组上应用二分查找
int search(int A[], int n, int target){int start = 0;int end = n - 1;while(start <= end){int mid = (start + end) >> 1;if(target == A[mid])return mid;else{if(A[start] <= A[mid]){if(target > A[mid])start = mid + 1;else if(target >= A[start])end = mid - 1;else start = mid + 1;}else{if(target < A[mid])end = mid - 1;else if(target <= A[end]) start = mid + 1;else end = mid - 1;}}}return -1;}
0 0
- Search in Rotated Sorted Array解题报告
- 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] 81. Search in Rotated Sorted Array II 解题报告
- [LeetCode] Search in Rotated Sorted Array 解题报告
- [LeetCode] Search in Rotated Sorted Array II 解题报告
- LeetCode(33) Search in Rotated Sorted Array解题报告
- [Leetcode] 33. Search in Rotated Sorted Array 解题报告
- [Leetcode] 81. Search in Rotated Sorted Array II 解题报告
- Search in Rotated Sorted Array LeetCode解题报告
- Leetcode #33. Search in Rotated Sorted Array 旋转数组查询 解题报告
- Leetcode 81. Search in Rotated Sorted Array II 旋转数组查询2 解题报告
- leecode 解题总结:33. Search in Rotated Sorted Array
- leecode 解题总结:81. Search in Rotated Sorted Array II
- leetcode解题方案--033--Search in Rotated Sorted Array
- 【LeetCode】Find Minimum in Rotated Sorted Array 解题报告
- ORACLE优化器RBO与CBO介绍总结
- 【万里征程——Windows App开发】ListView&GridView之添加数据
- Matlab处理图像的一般方法
- 南阳理工oj252 数位dp
- 笑谈设计模式(第二篇)
- Search in Rotated Sorted Array解题报告
- C++ 简单实现压栈出栈
- First calibration example - Corner extraction, calibration, additional tools (二)
- Reverse Rot Contest2073 - 湖南多校对抗赛(2015.04.06)G
- 稀疏的好處
- First calibration example - Corner extraction, calibration, additional tools(一)
- 《Python核心编程》第八章练习解析
- 网购秒杀系统的设计
- 17243 Huzi酱和他的俄罗斯套娃[C]