Python 实现图像顺时针旋转 90 度:代码详解与复杂度分析
以下是使用 Python 实现将输入的图像顺时针旋转 90 度后输出的代码: ```python # 读取输入的行数 n 和列数 m n, m = map(int, input().split()) # 初始化图像矩阵 image = [] # 读取图像的每个像素点的值 for _ in range(n): row = list(map(int, input().split())) image.append(row) # 创建一个新的矩阵来存储旋转后的图像 rotated_image = [[0] * n for _ in range(m)] # 进行顺时针旋转 90 度的操作 for i in range(n): for j in range(m): rotated_image[j][n - 1 - i] = image[i][j] # 输出旋转后的图像 for row in rotated_image: print(" ".join(map(str, row))) ``` 代码解释 1. 输入读取: - 首先读取输入的行数 `n` 和列数 `m`。 - 然后通过循环读取 `n` 行,每行包含 `m` 个整数,将其存储在 `image` 矩阵中。 2. 初始化旋转后图像矩阵: - 创建一个新的矩阵 `rotated_image`,其行数为 `m`,列数为 `n`,用于存储旋转后的图像。 3. 旋转操作: - 使用两层循环遍历原图像矩阵 `image`。 - 对于原图像矩阵中的每个元素 `image[i][j]`,将其放置到旋转后图像矩阵的 `rotated_image[j][n - 1 - i]` 位置。 4. 输出结果: - 遍历旋转后图像矩阵 `rotated_image`,将每行的元素转换为字符串并用空格连接起来,然后输出。 复杂度分析 - 时间复杂度:$O(n * m)$,其中 $n$ 是原图像的行数,$m$ 是原图像的列数。因为需要遍历原图像矩阵中的每个元素。 - 空间复杂度:$O(n * m)$,主要用于存储旋转后的图像矩阵。 ######[AI问答 | 486点数解答 | 2025-12-09 12:25:11]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)458
- C++ 实现海龟移动指令计算最终位置坐标(字节豆包 | 638点数解答 | 2026-03-14 20:57:34)9
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 神秘数据背后的信息解读:样例输入与输出探秘(字节豆包 | 28点数解答 | 2024-12-12 11:56:59)408
- Python实现考生分数等级划分:输入处理、边界判断与数据验证要点(字节豆包 | 234点数解答 | 2025-08-31 12:55:23)227
- C++ 实现考生分数等级划分:边界、精度与范围处理要点(字节豆包 | 259点数解答 | 2025-08-31 12:55:38)158
- C++代码:依据分数划分考生等级全解析(字节豆包 | 389点数解答 | 2025-12-12 20:47:10)98
- C语言实现:2024级学习之星评选程序(字节豆包 | 471点数解答 | 2025-12-29 18:37:42)57
- C++ 实现:根据考生分数精准划分四个等级(字节豆包 | 334点数解答 | 2026-01-06 23:14:17)47
- C++实现:根据分数一键划分“不合格、合格、良好、优秀”四个等级(字节豆包 | 247点数解答 | 2026-01-10 18:04:59)48
- C++ 实现根据考生分数划分等级(字节豆包 | 322点数解答 | 2026-02-13 22:09:38)22
- C++实现根据考生分数划分等级(字节豆包 | 179点数解答 | 2026-02-20 11:41:11)41