地址:https://leetcode-cn.com/problems/search-insert-position/
<?php /** 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5,6], 0 输出: 0 */ class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer */ //方法1:循环 function searchInsert1($nums, $target) { for ($i = 0; $i < count($nums); $i++) { if ($target <= $nums[$i]) { return $i; } else { continue; } } return count($nums); } //方法2:二分法 function searchInsert($nums, $target) { $len = count($nums); $left = 0; $right = $len-1; while($left <=$right){ $mid =(int)( ($left+$right)/2); if ($target == $nums[$mid]) return $mid; if ($target >$nums[$mid]){ $left=$mid+1; }else{ $right = $mid-1; } } return $left; } } $solution = new Solution(); $arr =[1,3,5,6]; $k = 7; var_dump($solution->searchInsert($arr,$k));