php有哪些算法面试题目(php有哪些算法面试题)
导读:我们在php中也学习了不少方面的算法知识点,其中的种类就不一一举例,但是在php面试题中会随机抽选出来,以实例的形式进行考察。这点和我们之前遇到的一些面试题不太一样,在这个模块中会专注实际的算法运算结果,复习时也不是没有规律可循。下面我们就带来一些算法中常见的面试题。...
我们在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; }创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!