一、题意
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。
你可以假设数组中不存在重复的元素。
你的算法时间复杂度必须是 O(log n) 级别。
示例 1:
输入: nums = [4,5,6,7,0,1,2], target = 0
输出: 4示例 2:
输入: nums = [4,5,6,7,0,1,2], target = 3
输出: -1二、解题
思路
二分查找
代码实现
class Solution {
/**
* @param Integer[] $nums
* @param Integer $target
* @return Integer
*/
function search($nums, $target) {
if (!$nums) return -1;
$low = 0;
$high = count($nums) - 1;
while ($low <= $high) {
$mid = floor(($high - $low) / 2) + $low;
if ($target == $nums[$mid]) return $mid;
if ($nums[$low] <= $nums[$mid]) {
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;
}
} 
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
穷凶极恶
新龙门客栈
超级轰天雷
神秘感染
看的我热血沸腾啊https://www.237fa.com/