python - 如何降低以下代码的时间复杂度
问题描述
谁能解释我如何降低从二维数组中找到最大数量的代码的时间复杂度
mat = [[17, 2, 33, 4],
[25, 66, 7, 8],
[9, 10, 78, 12],
[13, 14, 15, 16]]
import sys
max = -sys.maxsize - 1
N = 4
M = 4
for i in range(N):
for j in range(M):
if (mat[i][j] > max):
max = mat[i][j]
print(max)
解决方案
您无法降低O
-Notation 的复杂性,因为您至少需要读取所有输入。所以没有算法的复杂度可以低于O(N*M)
(其中 N,M 是矩阵的维度)
推荐阅读
- c# - 将 API 请求添加到按钮
- html - 为什么导航与其他导航不在同一条线上?
- sql - SQL Server - 使用 PIVOT 函数
- javafx - 如何使用 Scene Builder 在 JavaFX 表中同样设置列宽?
- javascript - Jquery Ajax 请求需要鼠标移动来更新屏幕?
- c++ - 使用带有 CppCMS 的表单上的多个按钮使用 POST
- javascript - 如何使 JavaScript ajax 异步调用看起来是同步的?
- swift - Cocoa - 使用来自另一个视图控制器的按钮更改选项卡视图
- c# - 当 3 != 3 在 c# Visual Studio 中
- excel - Excel以不同的方式四舍五入相同的数字