1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

php有哪些算法面试题

1987web2024-03-25WEB开发211

我们在php中也学习了不少方面的算法知识点,其中的种类就不一一举例,但是在php面试题中会随机抽选出来,以实例的形式进行考察。这点和我们之前遇到的一些面试题不太一样,在这个模块中会专注实际的算法运算结果,复习时也不是没有规律可循。下面我们就带来一些算法中常见的面试题。

1.冒泡排序

每一次冒出一个值

functionbubbleSort($arr){$count=count($arr);if($count==0)returnfalse;for($i=0;$i<$count-1;$i++){for($k=0;$k<$count-1-$i;$k++){if($arr[$k]<$arr[$k+1]){$tmp=$arr[$k];$arr[$k]=$arr[$k+1];$arr[$k+1]=$tmp;}}}return$arr;}

2.给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。

实现代码

/***@paramInteger[]$height*@returnInteger*/functiontrap($height){$len=count($height);$sum=0;for($i=1;$i<$len;$i++){$left_max=0;$right_max=0;for($j=0;$j<$i;$j++){$left_max=max($left_max,$height[$j]);}for($k=$i;$k<$len;$k++){$right_max=max($right_max,$height[$k]);}$max=min($left_max,$right_max);if($max>$height[$i]){$sum+=$max-$height[$i];}}return$sum;}
声明:本站所有文章,如无特殊说明或标注,均为爬虫抓取以及网友投稿,版权归原作者所有。