本文共 468 字,大约阅读时间需要 1 分钟。
题目链接:
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]
思路还是比较简单的,但是写的时候有一些小细节没有注意到,主要思路如下:
将矩形框看作n/2个⚪构成的同心圆,旋转90°其实就是第i个圈,移动(n-2*i-1)次。然后将圈上的数字依次移动,在移动的时候,注意一些小细节,在何处转换方向,转换方向处的坐标,以及如何处理圈的开始以及结尾。class Solution { public: void rotate(vector>& matrix) { int n=matrix.size(); int k=n/2; for(int i=0;i
转载地址:http://xkgsi.baihongyu.com/