LeetCode_Search in Rotated Sorted Array
来源:互联网 发布:win10文件加密软件 编辑:程序博客网 时间:2024/05/21 10:36
题目:
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might 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.
三个招:前两个很简单,巧妙地是第三个。
//方法一:分批次二分查找 ;查找出分割点需要时间O(n),总时间复杂度 O(n) int BinaryResearch(int A[],int low,int high,int target){ int l = low; int h = high; while(l<=h) { int mid = (int)((h+l)/2); if(A[mid]==target) return mid; else if(A[mid]<target) l = mid+1; else h = mid-1; } return A[h]; }int search1(int A[], int n, int target) { int index = 0; for(int i = 0;i<n-1;i++) { if(A[i]>A[i+1]) { index = i; break; } } int a = BinaryResearch(A,0,index,target); int b = BinaryResearch(A,index+1,n-1,target); if(a==-1&&b==-1) return -1; else return a==-1?b:a;}int search2(int A[], int n, int target) { //顺序查找 ,O(n) int index = -1; for(int i = 0;i<n;i++) { if(A[i]==target) { index = i; }} return index;}//完全的二分查找,O(logn) int search3(int A[], int n, int target) { int left = 0; int right = n-1; while(left<=right) { int mid = (int)((left + right)/2); if(A[mid] == target) return mid; if(A[left]<A[mid])//A[mid]在前半部分 { if(target<A[mid]&&target>=A[left]) right = mid-1; else left = mid+1; } else if(A[left]>A[mid])//A[mid]位于后半段 { if(target>A[mid]&&target<=A[right]) left = mid+1; else right = mid-1; } else left++; } return -1; }
1 0
- Leetcode_search-in-rotated-sorted-array
- LeetCode_Search in Rotated Sorted Array
- LeetCode_Search in Rotated Sorted Array
- LeetCode_Search in Rotated Sorted Array
- LeetCode_Search in Rotated Sorted Array
- LeetCode_Search in Rotated Sorted Array II
- leetcode_Search in Rotated Sorted Array II
- Leetcode_search-in-rotated-sorted-array-ii(updated c++ and python version)
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- [leetcode]in Rotated Sorted Array
- Search in Rotated Sorted Array
- poj 2421 Constructing Roads(最小生成树)
- 3、Don't let happiness run away from us
- 【简单数学&DP】闰年计数&回文串计数 _Hihocoder战场 @ 编程之美2015资格赛
- PHP中对路径的操作总结
- 版本控制器——SVN
- LeetCode_Search in Rotated Sorted Array
- 母函数与排列组合
- 面向对象设计原则之里氏代换原则
- Java--获取指定目录下指定suffix的文件
- SOJ.MyString Class
- 4月最后10天的计划
- SOJ.MyVector
- index与lastIndex---轻开平台(原WebEasy)字符串计算4
- CSU1563 组合数学