码迷,mamicode.com
首页 > 其他好文 > 详细

Search in Rotated Sorted Array II

时间:2015-07-08 22:28:49      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

Question:

Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

Write a function to determine if a given target is in the array.

Solution:

 1 class Solution {
 2 public:
 3     bool search(vector<int>& nums, int target) 
 4     {
 5        int left=0;
 6     int right=nums.size()-1;
 7     if(left==right && nums[left]==target)
 8         return true;
 9     while(left!=right)
10     {
11         int mid=(left+right)/2;
12         if(nums[mid]==target) return true;
13         if(nums[left]<nums[mid])
14         {
15             if(nums[left]<=target && target<=nums[mid])
16                 right=mid;
17             else
18                 left=mid+1;
19         }
20         else if(nums[left]>nums[mid])
21         {
22             if(nums[mid]<=target && target<=nums[right])
23                 left=mid+1;
24             else
25                 right=mid;
26         }
27         else
28             left++;
29         if(left==right && nums[left]==target)
30             return true;
31     }
32     return false;  
33     }
34 };

技术分享

Search in Rotated Sorted Array II

标签:

原文地址:http://www.cnblogs.com/riden/p/4631423.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!