擅长:python、mysql、java
<p>@davedwards给出的答案非常优雅。你知道吗</p>
<p>这是我编写的解决方案,它的运行时与我机器上的解决方案相同。你知道吗</p>
<pre><code>def run_length_encoding(matrix):
# List for storing run length encoding
encoding = []
# Counts the number of occurrences
count = 0
# Initialize previous element to first element in matrix
previous_element = matrix[0][0]
for row in matrix:
for current_element in row:
if current_element == previous_element:
count += 1
else:
encoding.append(previous_element)
encoding.append(count)
# Reset counter and update previous element
count = 1
previous_element = current_element
# Append last element since loop exited.
encoding.append(previous_element)
encoding.append(count)
return encoding
</code></pre>