网站建设和网站搭建哪个好郑州做网站开发销售
news/
2025/10/4 1:33:35/
文章来源:
网站建设和网站搭建哪个好,郑州做网站开发销售,wordpress绕过媒体,建立个人网站的详细步骤题目
给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
示例 1#xff1a; 输入#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]…题目
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
示例 1 输入matrix [[1,2,3],[4,5,6],[7,8,9]] 输出[[7,4,1],[8,5,2],[9,6,3]] 示例 2 输入matrix [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] 输出[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
答案
要实现这个题目我们可以使用递归的方法。具体来说我们可以将矩阵的每一行看作是一个单独的子矩阵。首先我们将子矩阵的最后一行即最初的第 n 列复制到新的第一行即旋转后的第 n 列。然后我们将子矩阵的最后一列即最初的第 n 行复制到新的第一列即旋转后的第 n 行。最后我们将子矩阵本身旋转。这就得到了旋转后的子矩阵。我们可以通过递归地应用这个过程来旋转整个矩阵。
以下是实现这个算法的 Python 代码
def rotate(matrix):n len(matrix)# 如果矩阵只有一行或一列直接反转即可if n 1:matrix.reverse()return matrix# 将子矩阵的最后一行即最初的第 n 列复制到新的第一行即旋转后的第 n 列matrix[0][n-1:n] matrix[0][n-1:n][::-1]# 将子矩阵的最后一列即最初的第 n 行复制到新的第一列即旋转后的第 n 行for i in range(1, n):matrix[i][0:1] matrix[i][0:1][::-1]# 递归地旋转子矩阵for i in range(n-1):for j in range(n-1):matrix[i][j1:n] matrix[i][j1:n][::-1]matrix[i1:n][j] matrix[i1:n][j][::-1]return matrix这个函数首先检查矩阵是否只有一行或一列。如果是这样它将直接反转矩阵。否则它将复制最初的第 n 列到新的第一列复制最初的第 n 行到新的第一行然后递归地旋转子矩阵。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926489.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!