Advertisement
nikunjsoni

81

May 18th, 2021
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     bool search(vector<int>& nums, int target) {
  4.         int left=0, right=nums.size()-1;
  5.        
  6.         while(left <= right){
  7.             int mid = (left+right)/2;
  8.             if(nums[mid] == target)
  9.                 return true;
  10.             if(nums[left] == nums[mid] && nums[mid] == nums[right])
  11.                 left++, right--;
  12.             else if(nums[left] <= nums[mid]){
  13.                 if(nums[left] <= target && nums[mid] > target)
  14.                     right = mid-1;
  15.                 else
  16.                     left = mid+1;
  17.             }
  18.             else{
  19.                 if(nums[mid] < target && nums[right] >= target)
  20.                     left = mid+1;
  21.                 else
  22.                     right = mid-1;
  23.             }
  24.         }
  25.         return false;
  26.     }
  27. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement