Leetcode基础刷题之PHP解析(153. Find Minimum in Rotated Sorted Array)

Leetcode基础刷题之PHP解析(153. Find Minimum in Rotated Sorted Array)

给定一个不知道在哪个点发生旋转的有序升序数组,求数组中最小值。

这道题做个类似的,也是在哪个点发生旋转,求一个数,想不起来了,可以去看之前有关二分查找的题目,他并不是让你直接使用内置函数,或者自己写遍历,这样时间复杂度都是O(n),应该通过二分查找来确定最小值所在的区间范围。

代码实现

  /**     * @param Integer[] $nums     * @return Integer     */    function findMin($nums) {        $l=0;        $r=count($nums)-1;        if($nums[$l]>$nums[$r]){//如果顺序旋转了           while($l !==$r-1){            $middle=$l+(($r-$l)>>1);            if($nums[$l]<$nums[$middle]) $l=$middle;            else $r=$middle;          }        return min($nums[$l],$nums[$r]);        }else{            return $nums[0];        }           }

Leetcode基础刷题之PHP解析(153. Find Minimum in Rotated Sorted Array)

未经允许不得转载:PHP100中文网 - 中国第一档PHP资源分享门户 » Leetcode基础刷题之PHP解析(153. Find Minimum in Rotated Sorted Array)

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏