主页 > 其他  > 

leetcode48.旋转图像

leetcode48.旋转图像

题目如下

观察交换规律我们可以看到,第一行第一个转移到的的最后一列的第一个。 即f(r,c) 转移到f(c,n - r - 1) 我们可以把r c赋值成(c,n - r - 1)可以发现一个位置走一圈总共有四个式子。 我们可以把第一个位置用t暂存随后逆推公式把后面的轮换上来。 temp = matrix[i][j]; matrix[i][j] = matrix[n - j - 1][i]; matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]; matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]; matrix[j][n - i - 1] = temp;

通过代码

class Solution { public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); int temp; for (int i = 0; i < n / 2; ++i) { for (int j = 0; j < (n + 1) / 2; ++j) { temp = matrix[i][j]; matrix[i][j] = matrix[n - j - 1][i]; matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]; matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]; matrix[j][n - i - 1] = temp; } } } };

标签:

leetcode48.旋转图像由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“leetcode48.旋转图像