leecode.48交换矩阵
题目
给定一个 n × n 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
说明:
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
思路分析
- 首先先转置矩阵。
- 将转置后的矩阵的列发生交换。
注意点
如何不使用中间变量实现两个数的交换。使用异或运算。实现两个int的交换。
a=a^b, b=b^a, a = a^b;
例子,例如当a=4,b=7的时候。二进制a:0100,b:0111.
在这个过程中
a=(0100)^(0111)=(0011)
b=(0011)^(0111)=(0100)
a=(0011)^(0100)=(0111)
代码
class Solution {
public:void rotate(vector<vector<int>>& matrix) {// 首先就是将matrix变成其转置,然后将转置中的矩阵列发生变化。(i,j)-(j,i)-(j,n - 1 - i)int n = matrix
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
