擅长:python、mysql、java
<p>对于给定的数据,您将在每个步骤更改矩阵,以确保在索引0处始终可以找到矩阵中的下一项。你知道吗</p>
<p>检查一下,换一下</p>
<pre><code>print(matrix.index(i))
</code></pre>
<p>至</p>
<pre><code>print(i, matrix, matrix.index(i))
</code></pre>
<p>你会看到更多的信息输出:</p>
<pre><code>[1, 2, 3, 4, 5] [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]] 0
[6, 7, 8, 9, 10] [[6, 7, 8, 9, 10], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]] 0
[11, 12, 13, 14, 15] [[11, 12, 13, 14, 15], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]] 0
</code></pre>
<p>看到了吗?每次都要更改第0个索引,使其等于矩阵中的下一项。你知道吗</p>
<p>循环一个列表中的项目,然后对列表中的每个项目进行<code>.index</code>,当然,总是会首先找到每个项目副本的出现点——除了在任何情况下浪费大量的计算(循环O(N平方),当然应该是O(N))之外,在像你这样的情况下,这会引起真正奇怪的结果。你知道吗</p>
<p>要恢复理智,请更改部件:</p>
<pre><code>def incrementRows(matrix):
for i in matrix:
print(matrix.index(i))
</code></pre>
<p>到,例如</p>
<pre><code>def incrementRows(matrix):
for where in range(len(matrix)):
print(where)
</code></pre>
<p>在剩下的时间里使用<code>where</code>,无论你现在在哪里重新计算(浪费了荒谬的循环数)<code>matrix.index(i)</code>。你知道吗</p>