Leetcode Search in Rotated Sorted Array I && II
来源:互联网 发布:阿里云lamp一键安装包 编辑:程序博客网 时间:2024/05/16 14:46
二分查找变形。比较时判断target是处于是否处于有序的那一段,判断是否处于有序的方法是:比较A[mid]和A[low]或者A[high]的大小。
如果有重复的元素,那么还要在比较前对数组进行处理,如果A[mid]==A[low]则low++,直到不等。
Search in Rotated Sorted Array I:
class Solution {public: int search(int A[], int n, int target) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. int low = 0, high = n-1; int mid; while(low <= high){ mid = (low+high)/2; if(A[mid] == target) return mid; else if(A[low] > A[mid]){ if(target > A[mid] && target < A[low]) low = mid+1; else high = mid-1; } else if(A[mid] > A[high]){ if(target > A[high] && target < A[mid]) high = mid-1; else low = mid+1; } else{ if(A[mid] > target){ high = mid-1; } else if(A[mid] < target){ low = mid+1; } //else return mid; } } return -1; }};
Search in Rotated Sorted Array II:
class Solution {public: bool search(int A[], int n, int target) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. int low = 0, high = n-1; int mid; while(low <= high){ mid = (low+high)/2; if(A[mid] == target) return true; else if(A[mid] == A[low]){ low++; } else if(A[low] > A[mid]){ if(target > A[mid] && target < A[low]) low = mid+1; else high = mid-1; } else if(A[mid] > A[high]){ if(target > A[high] && target < A[mid]) high = mid-1; else low = mid+1; } else{ if(A[mid] > target){ high = mid-1; } else if(A[mid] < target){ low = mid+1; } //else return mid; } } return false; }};
- Leetcode Search in Rotated Sorted Array I && II
- 【Leetcode长征系列】Search in Rotated Sorted Array I & II
- !leetcode[33&81]:Search in Rotated Sorted Array[I & II]
- LeetCode(33)(81) Search in Rotated Sorted Array I II
- [LeetCode]Search in Rotated Sorted Array I && II
- 【LeetCode从零单刷】Search in Rotated Sorted Array I & II
- LeetCode 33,81. Search in Rotated Sorted Array i, ii
- Leetcode 33, 81 Search in Rotated Sorted Array I, II
- [LeetCode]Search in Rotated Sorted Array I&II
- Search in Rotated Sorted Array I II
- Search in Rotated Sorted Array I && 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
- [Leetcode] Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- [Java] 接口-02
- C++对象模型笔记之程序设计模型
- [安卓破解]搜种神器,无广告,无积分限制
- CV知名会议
- HDU2141:Can you find it?(二分)
- Leetcode Search in Rotated Sorted Array I && II
- strcpy_s复制之后的字符被丢失
- 注册表彻底删除mysql
- Eclipse编码问题
- HDU2522:A simple problem
- VC动态创建控件
- C++之类继承
- Ubuntu运行坦克大战
- 如何用笔记本电脑破解无线路由器密码