查找矩阵内的最大和子=矩形[重复]

2024-01-10

可能的重复:
获取总和最大的子矩阵? https://stackoverflow.com/questions/2643908/getting-the-submatrix-with-maximum-sum

给定一个正整数和负整数的二维数组,找到总和最大的子矩形。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。子矩形是位于整个数组内的任何大小为 1*1 或更大的连续子数组。例如,数组的最大子矩形:

 0 -2 -7  0
 9  2 -6  2
-4  1 -4  1
-1  8  0 -2

位于左下角:

 9  2
-4  1
-1  8

总和为 15。

因此,给定一个矩形,找到最大子矩形之和(上例中为 15)的有效算法是什么。


你可以解决它O(numCols*numLines^2)。在 1d 中考虑同样的问题:

给定一个包含 n 个元素的向量,找到最大和连续子序列。

Let S[i] = maximum sum contiguous subsequence that ends with element i。我们有S[1] = array[1] and S[i > 1] = max(S[i - 1] + array[i], array[i]).

请注意,您不需要向量来解决此问题,两个变量就足够了。更多的here http://en.wikipedia.org/wiki/Maximum_subarray_problem.

现在,对于您的矩阵情况,计算Sum[i][j] = sum of the first i elements of column j.

现在,对于矩阵中每个可能的行对,将一维算法应用于由当前对的行之间的元素组成的“向量”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找矩阵内的最大和子=矩形[重复] 的相关文章

  • 贪心技术与穷举搜索有何不同?

    我正在为一些示例问题编写伪代码 并且我注意到贪婪技术和详尽搜索之间存在令人担忧的模式 Job 1 Job 2 Job 3 Job 4 Job 5 Person 1 9 2 7 8 Person 2 6 4 3 7 Person 3 5 8
  • 压缩很多小字符串的算法?

    我正在寻找一种压缩小 ASCII 字符串的算法 它们包含大量字母 但也可以包含数字和很少的特殊字符 它们很小 平均约为 50 100 字节 最多 250 个字节 例子 Android show EditText setError above
  • 如何提高洪水填充例程的性能?

    我正在我的应用程序中实现四路洪水填充 伪代码如下 Flood fill node target color replacement color 1 If the color of node is not equal to target co
  • 寻找簇的中心

    我有以下问题 进行抽象以找出关键问题 我有 10 个点 每个点与其他点有一定距离 我想要 能够找到簇的中心 即与其他点的成对距离最小的点 令 p j p k 表示点 j 和 k 之间的成对距离p i 是簇的中心点 iff p i s t m
  • 最接近 x,y 的线上的点[重复]

    这个问题在这里已经有答案了 可能的重复 如何判断一个点是否在某条线附近 https stackoverflow com questions 910882 how can i tell if a point is nearby a certa
  • 数字求和的算法?

    我正在寻找一种数字求和的算法 让我概述一下基本原则 假设你有一个号码 18268 1 8 2 6 8 25 2 5 7 7 是我们的最终数字 它基本上是将整个数字中的每个数字相加 直到我们得到一个 也称为 核心 数字 它经常被命理学家使用
  • 整数除法性质

    下面的整数算术性质成立吗 m n l m n l 起初我以为我知道答案 不成立 但现在不确定 它适用于所有数字还是仅适用于某些条件 即n gt l 该问题涉及计算机算术 即q n m q m n 忽略溢出 Case1 assume m kn
  • 将数字 n 拆分为 k 个不同数字的总和

    我有一个数字 n 我必须将它分成 k 个数字 使得所有 k 个数字都是不同的 k 个数字的总和等于 n 并且 k 最大 例如 如果 n 为 9 则答案应为 1 2 6 如果 n 为 15 则答案应为 1 2 3 4 5 这就是我尝试过的 v
  • 使用 stl sort 对表进行排序

    我有一个巨大的表 约 50Gb 格式为 i j k 来自稀疏矩阵 存储为 uint32 t idx1 idx2 float vals uint32 t tablesize 我想使用给定的比较函数 即 idx1 和 idx2 的函数 对其进行
  • 查找两个大小为 n 的数组中第 n 大数的算法

    我有这个问题 给定两个大小为 n 的排序列表 存储在数组中 找到 O log n 计算并集中第 n 大元素的算法 两个列表 我可以看到这里可能有一个技巧 因为它需要第 n 个最大的元素 并且数组的大小也是 n 但我不知道它是什么 我在想我可
  • 打印从 1 到 100 的质数

    此 C 代码打印出以下素数 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 但我不认为这就是我的书所希望的写作方式 它提到了一些关于数字的平方根的内容
  • 埃拉托斯特尼筛法是生成 1 到 N 素数的最佳算法吗?

    我在一次采访中被问到这个问题 我使用埃拉托色尼筛子概念和数组实现了一种算法 有没有更好的方法来解决这个问题 对于不知道筛子的人 请点击以下链接 http en wikipedia org wiki Sieve of Eratosthenes
  • 读取4个点的坐标。他们做一个正方形吗?

    我计算点之间的距离 如果距离相等 则点构成一个正方形 否则不 仅当我按以下顺序读取坐标 A x y B x y C x y D x y 或相反时 我的代码才有效 但是如果我这样读 例如 A x y B x y D x y C x y 它将不
  • 如何在大空间尺度上加速A*算法?

    From http ccl northwestern edu netlogo models community Astardemo http ccl northwestern edu netlogo models community Ast
  • Haar级联正例图像大小调整

    我正在迈出第一步 为自定义对象识别创建 haar 级联 我花了时间获取大量数据并编写了一些预处理脚本以将视频转换为帧 我的下一步是裁剪感兴趣的对象 以创建一些积极的训练示例 我有几个问题 我确实在网上寻找答案 我有点困惑 我读到我应该致力于
  • 模式识别算法

    过去我必须开发一个充当规则评估器的程序 你有一个先行词和一些后续词 动作 所以如果先行词评估为真 则执行的动作 当时我用的是修改版RETE算法 http en wikipedia org wiki Rete algorithm RETE 有
  • 为每个英文单词生成唯一序列号的算法

    对于应用程序 我需要为每个英语单词生成唯一的序列号 最好的方法是什么 一个限制是序列号生成算法应该在普通台式计算机中非常有效 Thanks 你有所有可能的单词的列表吗 如果是 则从第一个字的 0 开始 每个字将序列号加 1 如果不是 那么保
  • javascript - 找到在一定限制下给出最大总和的子集(子集总和)

    我有一个包含一些整数值的数组 我需要获取它们的子集 该子集给出小于给定值的最大总和 假设我有这个数组 40 138 29 450 我想获得该数组的一个子集 使总和最大化 但低于用户给出的限制 比如说 250 在这种情况下 它应该返回 139
  • 单词预测算法

    我确信有一篇关于此问题的帖子 但我找不到提出这个确切问题的帖子 考虑以下 我们有字典可供使用 我们收到了许多单词段落 我希望能够根据此输入预测句子中的下一个单词 假设我们有几个句子 例如 你好 我的名字是汤姆 他的名字是杰瑞 他去了没有水的
  • 沿着长数据序列在固定大小的移动窗口中查找中值

    给定一个数据序列 可能有重复项 一个固定大小的移动 窗口 从数据开始处每次迭代时移动窗口 序列 使得 1 从窗口中删除最旧的数据元素并添加新数据 元素被推入窗口 2 求每次移动时窗口内数据的中位数 以下帖子没有帮助 有效地找到随机序列的中值

随机推荐

  • MySQL 存储过程通过 MS Access (VBA) 中的 ADODB 的输出参数在一台计算机上正确,在另一台计算机上随机

    我已经尝试了 几乎 一切方法来隔离问题 但我迷失了 我有一个 MS Access 应用程序 它使用 ADODB 连接到本地 MySQL 数据库 我将其复制到一台新计算机 但现在存储过程的输出参数每次都包含一个随机值 如果通过 ADODB 完
  • 你能用C#制作一个alpha透明的PNG吗?

    我有一个显示垂直文本的多浏览器页面 作为让文本在所有浏览器中垂直呈现的丑陋黑客 我创建了一个自定义页面处理程序 它返回一个带有垂直绘制文本的 PNG 这是我的基本代码 C 3 但对任何其他版本进行了小幅更改 直至 1 Font f GetS
  • 流星: 发送电子邮件 | AuthError:登录无效 - 535-5.7.8

    我已经安装了电子邮件包并尝试发送测试邮件 但它向我显示以下错误 AuthError 无效登录 535 5 7 8 用户名和密码不被接受 我确信凭据是正确的 并且代码与以下内容相同 https github com ideaq meteor
  • 滚动捕捉会跳过较小屏幕上的部分 - Chrome

    我正在尝试在页面上实现滚动捕捉 我已将scroll snap type 添加到容器元素 并将scroll snap align 添加到子部分 它在大屏幕上的 Chrome 上运行良好 在所有屏幕尺寸的 Firefox 上运行良好 然而 它似
  • 如何从 JTable 中删除一行? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想从 JTable 中删除一些行
  • 利用浏览器缓存外部文件

    我试图让我的谷歌页面速度洞察评级达到不错的水平 但是我也想缓存一些外部文件 有人知道处理这个问题的最佳方法是什么吗 https s swiftypecdn com cc js 5 minutes https pagead2 googlesy
  • 如何使用python比较两个球点的大圆距离和欧氏距离?

    我试图检查当您使用欧几里德距离而不是使用大圆距离 gcd 计算地球上两点的距离时引入的错误 我有两个由纬度和经度定义的点 我使用了 python geopy 框架大圆距离 https github com geopy geopy blob
  • Unity Animator SetTrigger 未重置为默认值

    正如我希望正确理解动画器 SetTrigger 一旦完成就会将动画设置为 false 如果我错了请纠正我 但我的项目并非如此 我有两种状态 默认 不执行任何操作 和移动 打开应用程序时会自动输入默认值 并且当我调用 SetTrigger 时
  • 获取 GIF 图像的第一帧而不下载所有其他帧

    我想从网络上获取一张GIF图像 但我发现如果我下载整个GIF图像 会导致大量的网络流量 我可以只获取 GIF 图像的第一帧而不下载所有其他帧吗 9 年零 6 个月后 正是伸出援手的最佳时机 这可以使用 ImageMagick 使用以下命令来
  • 离子服务/离子运行不反映变化

    ionicserve 和 ionicrun 都没有反映我的任何最新更改 ionicserve 显示了几个小时前的情况 ionicrun 显示了大约一个小时后的情况 从那时起 我放弃了所有更改 并从父分支创建了一个新分支 但它仍然在第一个分支
  • 如何以守护进程模式运行 Django 服务器?

    我想在守护进程模式下运行 Django 开发服务器 这样当我退出 shell 时 服务器仍然会运行 我怎样才能做到这一点 除了 Bernhard 所说的之外 如果您计划将其用于生产环境 您应该使用 mod wsgi 在 apache 下运行
  • 当用户滚动到页面最底部时淡入/淡出固定位置 div

    这看起来相当简单 但我试图让固定位置的页脚 div 在用户滚动到网页最底部时滑动并淡入 然后在用户向上滚动时滑动并淡出 我搜索了 Stack Overflow 其他人提出了建议的解决方案 但我的代码导致我的 div 只能滑动和淡入 当用户向
  • 我的数据库没有更新,如果我的JSON数据也会增加

    我正在将 JSON 数据解析到数据库 该数据显示在我的 lisview 中 但是第一次它从我的 JSON 获取数据并将其存储在数据库中 如果我在网站中添加任何内容 它不会升级 json 也会增加 但不会增加反映在数据库中 数据库部分也没有升
  • Prism可以使用.NET Core内置的依赖注入吗?

    我想使用 NET Core 3 1 启动 WPF 应用程序Prism可以利用 Net Core的内置DI IServiceCollection 或者我必须使用Unity之类的东西吗 如果Prism不能使用内置DI 它们可以并存吗 Prism
  • 为什么编译器不能完全解决死代码检测问题?

    我在 C 或 Java 中使用的编译器具有死代码预防功能 当一行永远不会被执行时发出警告 我的教授说编译器永远无法完全解决这个问题 我想知道这是为什么 我不太熟悉编译器的实际编码 因为这是一个基于理论的课程 但我想知道他们检查什么 例如可能
  • 测试文件是否已下载 Selenium/C# (Google Chrome)

    我想单击下载文件的按钮on click 并测试是否已下载所需的文件 我已经用 google 搜索过这个问题 但不幸的是没有找到关于这个主题的任何具体答案 我发现的很多帖子都已经过时了 2014 年 我敢打赌 Selenium 现在肯定已经改
  • WSO2 API 管理器,无效。无法找到请求目标的有效认证路径

    我已经在本地启动了 WSO2 API Manager 我正在尝试添加 API 端点https联系 它向我展示了这种错误 它向我展示了Invalid unable to find valid certification path to req
  • C# 与 Excel 中的模数有何不同?

    我正在试验负基数系统 并使用 Excel 来处理和检查我的计算 我注意到 C 与 Excel 之间存在差异 为什么 C 返回的结果与 Excel 不同 例如 C 146 3 2 Excel mod 146 3 1 假设我们有四个整数 x y
  • string.replace(fromCharCode() , '') 无法替换字符

    当我解析 XML 时 它包含异常的十六进制字符 所以我尝试用空白来代替它 但这根本不起作用 原人物 hex code 253 255 code xmlData String replace String fromCharCode 253 2
  • 查找矩阵内的最大和子=矩形[重复]

    这个问题在这里已经有答案了 可能的重复 获取总和最大的子矩阵 https stackoverflow com questions 2643908 getting the submatrix with maximum sum 给定一个正整数和