微信扫一扫打赏支持

php实现旋转数组的最小数字

php实现旋转数组的最小数字

一、总结

1、题目描述定位法:掐准输入输出这两个关键词,然后题目意思就很清晰了

2、这个题目就是找数组的最小值

 

二、php实现旋转数组的最小数字

题目描述:

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

代码一:

 1 <?php
 2 function quickSort($rotateArray){
 3     if(empty($rotateArray)){ //1、empty函数用在array身上
 4        return []; //2、返回空数组的写法
 5     }
 6     $left = $right = [];
 7     for($i = 1;$i<count($rotateArray);$i++){
 8         $tmp = $rotateArray[0];
 9         if($rotateArray[$i] < $tmp){
10             $left[] = $rotateArray[$i];
11         }else{
12             $right[] = $rotateArray[$i];
13         }
14     }
15     return array_merge(quickSort($left),[$rotateArray[0]],quickSort($right));
16 }
17  
18 function minNumberInRotateArray($rotateArray)
19 {
20    //return array_shift(quickSort(&$rotateArray));
21     return min($rotateArray);
22 }

 

代码二:

1 <?php
2 
3 function minNumberInRotateArray($rotateArray)
4 {
5     if(!$rotateArray) return [];
6     else sort($rotateArray);
7     return $rotateArray[0];
8 }

 

posted @ 2018-05-17 12:55  范仁义  阅读(272)  评论(0编辑  收藏  举报