首页 > 代码库 > 81. Search in Rotated Sorted Array II
81. Search in Rotated Sorted Array II
题目:
Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?Would this affect the run-time complexity? How and why?
Suppose an array sorted in ascending order 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
).
Write a function to determine if a given target is in the array.
The array may contain duplicates.
链接:https://leetcode.com/problems/search-in-rotated-sorted-array-ii/#/description
5/2/2017
顺序查找,O(N)
1 public class Solution { 2 public boolean search(int[] nums, int target) { 3 if (nums == null || nums.length == 0) { 4 return false; 5 } 6 for (int i = 0; i < nums.length; i++) { 7 if (nums[i] == target) { 8 return true; 9 } 10 } 11 return false; 12 } 13 }
别人的答案:worst case O(N)
https://discuss.leetcode.com/topic/8087/c-concise-log-n-solution
1 class Solution { 2 public: 3 bool search(int A[], int n, int target) { 4 int lo =0, hi = n-1; 5 int mid = 0; 6 while(lo<hi){ 7 mid=(lo+hi)/2; 8 if(A[mid]==target) return true; 9 if(A[mid]>A[hi]){ 10 if(A[mid]>target && A[lo] <= target) hi = mid; 11 else lo = mid + 1; 12 }else if(A[mid] < A[hi]){ 13 if(A[mid]<target && A[hi] >= target) lo = mid + 1; 14 else hi = mid; 15 }else{ 16 hi--; 17 } 18 19 } 20 return A[lo] == target ? true : false; 21 } 22 };
更多讨论
https://discuss.leetcode.com/category/89/search-in-rotated-sorted-array-ii
81. Search in Rotated Sorted Array II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。