近日看到一道面试题:
求一个矩阵中最大的二维子矩阵(元素和最大),如:
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是:
4 5
5 3
要求:(1)写出算法;(2):分析时间复杂度
初步思路:(1)设定一个最大二维子矩阵;(2)遍历原矩阵,相邻的两元素和相加,若大于子矩阵则进行替换。
代码:
function test1($arr) {
$juzhen_max = [[0,0],[0,0]]; // 最大矩阵数组
foreach ($arr as $k1 => $v1) {
$value_0 = array_sum($juzhen_max[0]);
$value_1 = array_sum($juzhen_max[1]);
if($value_0 <= $value_1){
// 要替换的最大矩阵索引
$juzhen_index = 0;
}else{
$juzhen_index = 1;
}
foreach ($v1 as $k2 => $v2) {
if( $k2 >= count($v1)-2 ) {
&nbs

本文讨论了一道面试题目,即如何找出一个矩阵中元素和最大的二维子矩阵。提出了初步思路,包括设定最大子矩阵并遍历原矩阵,通过比较相邻元素和来更新最大子矩阵。同时提到了一种优化的解决方案,引用了其他博客的详细方法链接。
最低0.47元/天 解锁文章
1万+





