面试矩阵相关题(持续更新)

本文探讨了如何解决矩阵的最大值子矩阵问题,包括有序矩阵的O(N^3)解决方案,以及如何在矩阵大小不同时通过转置优化算法。此外,还提到了求累加和小于等于k的最大子矩阵的问题,该问题与求最长子数组长度相关。最后,提出了一道挑战性的无序矩阵问题,目标是找到只包含1的最大子矩阵的大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

矩阵

给定一个有序矩阵,有正,有负,有0,求子矩阵的最大值:

暴力递归:时间是ON^6-->N^2(左上角点的位置数)xN^2(右下角点的位置数)xN^2(遍历一遍画出来的点的时间)

最好的解法是O(N^3):在按排计算的时候用ij进行遍历,然后通过使用求最大子数组的方法求出每次的子矩阵的最大值。

当为mm<nx n的时候,可以转置矩阵,让小的来做ij的循环,这样为m^2 X n

 

给定一个有序矩阵,有正,有负,有0,给定一个值k,求累加和小于等于k的最大子矩阵,矩阵大小用其中的元素个数来衡量:

和上题一样,只是每次比较一次即可。所需要的算法原型是:得到一个数组中不大于k的最长子数组的长度,在数组中有讲。

 

给定一个无序矩阵,只有01两种值,求只含有1的最大子矩阵的大小,大小按照其包含的元素个数来表示(略难)(时间复杂度):

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值