题解 | #二分查找-I#
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
<?php
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
function search( $nums , $target )
{
if (empty($nums)){
return -1;
}
$left = 0;
$right = count($nums)-1;
// 递归
// return find($nums,$left,$right,$target);
// 循环
while ($left <= $right){
$mid = intval(($left+$right)/2);
if ($target == $nums[$mid]){
return $mid;
}
if ($nums[$mid] > $target){
$right = $mid-1;
}else{
$left = $mid + 1;
}
}
return -1;
}
// 递归写法
// function find($nums ,$left,$right,$target){
// if ($left > $right){
// return -1;
// }
// $mid = intval(($left+$right)/2);
// if ($nums[$mid] == $target){
// return $mid;
// }
// if ($nums[$mid] > $target){
// return find($nums,$left, $mid-1,$target);
// }else{
// return find($nums, $mid+1,$right,$target);
// }
// }
#二分查找#