数组中最大子矩阵,最简便的解法

本文介绍了从左程云先生的书籍中获得灵感,提出的一种解决数组最大子矩阵问题的简单算法。核心思想是通过由下至上的轮次计算,找出每轮次的最大连续子矩阵面积,并比较各轮次的最大值。代码实现简洁,经过测试验证能正常工作,但时间复杂度较高。适合寻求结果而非最优解的场景。
摘要由CSDN通过智能技术生成

题目初试
遇到一个好人,可以改变一生;遇到一本好书,又何尝不是呢?

最近在翻阅 左程云先生的《程序员代码面试指南–IT名企算法与数据结构题目最优解》时就非常的有感悟。建议有这方面爱好的博友,也去观摩观摩。

书中讲解的基于栈的数组的最大矩阵的算法很经典,但是博主能力有限,没能彻底的领悟该算法的精髓,但是根据这个思想,博主想出了一种简易的应对该类问题的算法,现概述如下。


核心思想

先来看一张图吧,我们就可以大致的理解了。

算法思想

如图,每一个轮次都是一次运算,而我们的核心就是针对这每一个轮次的内部的运算。

计算出每一层连续不间断的最大长度

也就是说,我们是最这个数组进行由下至上的轮次计算,然后针对每一轮就可以计算出本轮次可以得出的连续最大子矩阵的面积。然后只需要比较每一个轮次的最大的那个数据,返回就可以求出该数组最大的连续的子矩阵的面积了。

代码

好了࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰 戈 尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值