矩阵
给定一个有序矩阵,有正,有负,有0,求子矩阵的最大值:
暴力递归:时间是O(N^6)-->N^2(左上角点的位置数)xN^2(右下角点的位置数)xN^2(遍历一遍画出来的点的时间)
最好的解法是O(N^3):在按排计算的时候用i,j进行遍历,然后通过使用求最大子数组的方法求出每次的子矩阵的最大值。
当为m(m<n) x n的时候,可以转置矩阵,让小的来做i和j的循环,这样为m^2 X n。
给定一个有序矩阵,有正,有负,有0,给定一个值k,求累加和小于等于k的最大子矩阵,矩阵大小用其中的元素个数来衡量:
和上题一样,只是每次比较一次即可。所需要的算法原型是:得到一个数组中不大于k的最长子数组的长度,在数组中有讲。
给定一个无序矩阵,只有0和1两种值,求只含有1的最大子矩阵的大小,大小按照其包含的元素个数来表示(略难)(时间复杂度):
本文探讨了如何解决矩阵的最大值子矩阵问题,包括有序矩阵的O(N^3)解决方案,以及如何在矩阵大小不同时通过转置优化算法。此外,还提到了求累加和小于等于k的最大子矩阵的问题,该问题与求最长子数组长度相关。最后,提出了一道挑战性的无序矩阵问题,目标是找到只包含1的最大子矩阵的大小。
8万+

被折叠的 条评论
为什么被折叠?



