世界最難二分搜XD
為什麼又變成小於等於了
使用「小於」跟「小於等於」的時機差別是甚麼?
回傳mid跟回傳low/high的時機差別又是甚麼?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Solution { public: int search(vector<int>& nums, int target) { int low = 0; int high = nums.size() - 1; while (low <= high) { int mid = (low + high) / 2; if(nums[mid] == target) return mid; if (nums[mid] >= nums[low]) if (nums[low] <= target && target <= nums[mid]) high = mid - 1; else low = mid + 1; else if (nums[mid] <= target && target <= nums[high]) low = mid + 1; else high = mid - 1; } return -1; } }; |