33. Search in Rotated Sorted Array

    xiaoxiao2021-03-25  87

    一次AC,看来我对于对分题,已经有了比较成熟的解法了。

    class Solution { public: int search(vector<int>& nums, int target) { if(nums.size()==0) return -1; int left=0; int right=nums.size()-1; while(right-left>1) { int mid=left+(right-left)/2;//index if(nums[mid]>nums[left]) { if(target>nums[mid]) left=mid+1; else if(target<nums[mid]) { if(target>nums[left]) right=mid-1; else if(target<nums[left]) left=mid+1; else return left; } else return mid; } else if(nums[mid]<nums[left]) { if(target<nums[mid]) right=mid-1; else if(target>nums[mid]) { if(target>nums[right]) right=mid-1; else if(target<nums[right]) left=mid+1; else return right; } else return mid; } else break; } //[left,right] if(nums[left]==target) return left; else if(nums[right]==target) return right; else return -1; } };
    转载请注明原文地址: https://ju.6miu.com/read-21178.html

    最新回复(0)