Type:medium
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e.,?[0,0,1,2,2,5,6]?might become?[2,5,6,0,0,1,2]).
You are given a target value to search. If found in the array return?true, otherwise return?false.
給定一個(gè)rotated sorted array瘾杭,判斷給定數(shù)值在不在這個(gè)數(shù)組中座云。
二分法鸿染。
bool search(vector<int>& nums, int target) {
? ? ? ? int n = nums.size();
? ? ? ? int left = 0;
? ? ? ? int right = n-1;
? ? ? ? sort(nums.begin(), nums.end());
? ? ? ? while(left<=right){
? ? ? ? ? ? int mid = left + (right - left)/2;
? ? ? ? ? ? if(target == nums[mid]) return true;
? ? ? ? ? ? else if(target < nums[mid]){
? ? ? ? ? ? ? ? right = mid - 1;
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? left = mid + 1;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return false;
? ? }