题目: 33. Search in Rotated Sorted Array 一个很清晰简洁的解法: Clever idea making it simple
int search(vector<int>& nums, int target) { int lo = 0, hi = nums.size(); while (lo < hi) { int mid = (lo + hi) / 2; double num = (nums[mid] < nums[0]) == (target < nums[0]) ? nums[mid] : target < nums[0] ? -INFINITY : INFINITY; if (num < target) lo = mid + 1; else if (num > target) // 这儿为什么不能 -1 ? hi = mid; else return mid; } return -1; } 这个解法省了我几万个脑细胞, lo = mid + 1 很好理解, 但是 hi = mid - 1 为什么出错, 我想破脑袋都没想明白...
