1. 程式人生 > 其它 >leetcode 81搜尋旋轉排序陣列2 C++

leetcode 81搜尋旋轉排序陣列2 C++

技術標籤:leetcode刷題記錄c++leetcode

利用二分查詢
1.左半部分增序,target在左邊則進行二分查詢。

2.右半部分增序,target在右邊則進行二分查詢。

class Solution {
public:
    bool search(vector<int>& nums, int target) {
        int start = 0, end = nums.size()-1;
        while(start <= end){
            int mid = (start+end)/2;
            if
(nums[mid] == target){ return true; } if(nums[start] == nums[mid]){ ++start;//處理重複數字 }else if(nums[mid] <= nums[end]){ if(target > nums[mid] && target <= nums[end]){ start = mid + 1
; } else{ end = mid - 1; } }else{ if(target >= nums[start] && target < nums[mid]){ end = mid - 1; } else{ start = mid +
1; } } } return false; } };