1. /**
    2. * @param {number[]} nums
    3. * @param {number} target
    4. * @return {number}
    5. */
    6. var search = function (nums, target) {
    7. let l = 0,
    8. r = nums.length - 1,
    9. min = 0
    10. while (r >= l) {
    11. min = parseInt(l + (r - l) / 2)
    12. console.log(l, r, min)
    13. if (nums[min] === target) return min
    14. if (nums[l] === target) return l
    15. if (nums[r] === target) return r
    16. if (nums[l] < nums[min]) {
    17. if (nums[min] > target && nums[l] < target) {
    18. r = min - 1
    19. } else {
    20. l = min + 1
    21. }
    22. } else {
    23. if (nums[min] < target && nums[l] > target) {
    24. l = min + 1
    25. } else {
    26. r = min - 1
    27. }
    28. }
    29. }
    30. return -1
    31. };