题目描述求一个矩阵中最大的二维矩阵(元素和最大),如:120342345111530中最大的是:4553要求:(1)写出算法;(2)分析时间复杂度;题目来源及自己的思路最近面试遇到的一道题,我是面试PHP开发
1 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
/***@param$x矩阵长度*@param$y矩阵高度*@param$arr矩阵数组*@returnarray组成最大值的value*/functionget_max_value($x,$y,$arr){$count=count($arr);if($x*$y!=$count){//判断是否是完整矩阵returnfalse;}$list=array_chunk($arr,$x);//分割原数组$max=0;//初始化组成的最大值为0for($b1=1;$b1<$y;$b1++){//二维矩阵y轴坐标for($a1=0;$a1<$x-1;$a1++){//二维矩阵x轴坐标$s=$list[$b1-1][$a1]+$list[$b1-1][$a1+1]+$list[$b1][$a1]+$list[$b1][$a1+1];if($s>$max){$max=$s;unset($max_arr);$max_arr[]=[$list[$b1-1][$a1],$list[$b1-1][$a1+1],$list[$b1][$a1],$list[$b1][$a1+1]];}elseif($s==$max){//判断同时存在多个最大值$max_arr[]=[$list[$b1-1][$a1],$list[$b1-1][$a1+1],$list[$b1][$a1],$list[$b1][$a1+1]];}}}return$max_arr;}$arr=[1,2,0,3,4,2,3,4,5,1,1,1,5,3,0];print_r(get_max_value(5,3,$arr));
添加回答
举报
0/150
提交
取消