/** * @param {number[]} nums * @param {number} target * @return {number} */ const search = (nums, target) => { let l = 0, r = nums.length - 1; while (l <= r) { let m = Math.ceil((l + r) / 2); if (target == nums[m]) return m; if (nums[l] <= nums[m]) { if (target > nums[m] || target < nums[l]) { l = m + 1; } else { r = m - 1; } } else { if (target < nums[m] || target > nums[r]) { r = m - 1; } else { l = m; } } } return -1; };