【发布时间】:2018-10-15 05:49:46
【问题描述】:
我有一个二维数组。我必须通过在从左上角到所有点的矩形中标记 1 的数量来初始化数组。
原始二维数组:
[0, 1, 0, 0, 0, 1, 0]
[1, 1, 0, 0, 1, 0, 1]
[0, 1, 1, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 1]
第一步(将垂直元素与上一步相加):
[0, 1, 1, 1, 1, 2, 2]
[1, 2, 2, 2, 3, 3, 4]
[0, 1, 2, 2, 3, 3, 3]
[0, 0, 0, 0, 0, 0, 1]
第二步(将水平元素与上一步相加):
[0, 1, 1, 1, 1, 2, 2]
[1, 3, 3, 3, 4, 5, 6]
[1, 4, 5, 5, 7, 8, 9]
[1, 4, 5, 5, 7, 8, 10]
这两个操作都是 O(n2)。有没有更快的方法来初始化列表?
【问题讨论】:
-
你想创建一个大小为 n^2 的列表,填充它的复杂度不会低于 O(n^2)
标签: python algorithm list multidimensional-array