1. <?php
    2. class Solution {
    3. /**
    4. * [4,5,6,7,0,1,2]
    5. *
    6. * @param Integer[] $nums
    7. * @param Integer $target
    8. * @return Integer
    9. */
    10. function search($nums, $target) {
    11. if (!$nums) return -1;
    12. $left = 0;
    13. $right = count($nums) - 1;
    14. for ($i = 0; $i < count($nums); $i++) {
    15. $mid = floor(($right - $left) / 2) + $left;
    16. if ($nums[$mid] == $target) {
    17. return $mid;
    18. }
    19. if ($nums[$left] < $nums[$mid]) {
    20. if ($nums[$left] == $target) {
    21. return $left;
    22. } else if ($nums[$left] > $target) {
    23. $left = $mid + 1;
    24. } else {
    25. $right = $mid - 1;
    26. }
    27. }
    28. if ($nums[$right] > $nums[$mid]) {
    29. if ($nums[$right] == $target) {
    30. return $right;
    31. } else if ($nums[$right] < $target) {
    32. $right = $mid - 1;
    33. } else {
    34. $left = $mid + 1;
    35. }
    36. }
    37. }
    38. return -1;
    39. }
    40. }
    41. $nums = [4,5,6,7,0,1,2];
    42. $target = 3;
    43. $cls = new Solution();
    44. $index = $cls->search($nums, $target);
    45. echo $index;