Leetcode PHP题解--D119 704. Binary Search
题目链接
题目分析
有序数组的二分查找。
思路
这个不用多说了,很基础的题目了。
用三个标记去记录起始位置、中间位置以及末尾位置。因为是有序的,所以可以通过判断中间位置的大小来每次减少一半待查找元素个数。
最终代码
<?php
class Solution {
/**
* @param Integer[] $nums
* @param Integer $target
* @return Integer
*/
function search($nums, $target) {
$start = 0;
$end = count($nums);
do{
$mid = floor(($end+$start)/2);
var_dump($start.'-'.$mid.'-'.$end);
if($nums[$mid] == $target){
return $mid;
}
if($nums[$mid]<$target){
$start = $mid+1;
}
else{
$end = $mid-1;
}
}while($end>=$start);
return -1;
}
}
若觉得本文章对你有用,欢迎用爱发电资助。
No Comments