arrays - 具有最大乘积的行列或对角线

标签 arrays algorithm

我最近遇到了这个面试问题,Matrix largest product of n numbers in a row

我了解滚动乘法方法。我想知道如果我将问题限定为强制选择整行、整列或对角线,是否还有进一步的优化可能。

所以基本上现在的问题是, 给定一个 NxM 矩阵,找到具有最大乘积的行或列或对角线。

是否有可能的 O(log n) 算法?

最佳答案

您必须至少查看每一行和每一列一次,因此您不能比 O(max(M, N)) 做得更好。为简单起见,许多人认为 M == N 并将其表示为 O(N)。

由于您还需要查看行/列中的每个元素,这使得它成为 O(M*N)。从本质上讲,这表明您需要在得出结果之前查看矩阵的每个元素。

关于arrays - 具有最大乘积的行列或对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376129/

相关文章:

c# - 使用 LINQ 查询获取索引值的集合

algorithm - 字符串外部索引的高效存储

javascript - 服务器上的 Node.js 对象不是客户端上的对象

c# - 读取存储在数组中的不同目录中的每个文件

Python:Luhn 的算法/if 语句从不执行

python - 查找字符串中重复字符的最长子串

algorithm - 为什么不能在有向图上使用 Prim 或 Kruskal 的算法?

algorithm - 在礼堂分配座位

java - 读取 csv 文件并将其值存储在二维 int 数组中 (java)

arrays - Terraform 嵌套循环对象数组,对象中有一个数组