leetcode-rotate-image 发表于 2016-12-12 | 分类于 算法 , leetcode | 题目大意 https://leetcode.com/problems/rotate-image/ 将正方形矩阵顺时针旋转90度,要求空间复杂度O(1) 题目分析 纯的数学坐标变换就可以,倒换4个元素的位置,位置下标算清楚就可以。 代码1234567891011121314151617public class Solution { public void rotate(int[][] matrix) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) { return; } int n = matrix.length; for (int i = n - 1, row = 0; i >= 1; i -= 2, row++) { // i表示当前行需要有多少个元素做移动 for (int j = row; j < row + i; j++) { int tmp = matrix[row][j]; matrix[row][j] = matrix[2 * row + i - j][row]; matrix[2 * row + i - j][row] = matrix[row + i][2 * row + i - j]; matrix[row + i][2 * row + i - j] = matrix[j][row + i]; matrix[j][row + i] = tmp; } } }}