旋转矩阵
Posted inception6-lxc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转矩阵相关的知识,希望对你有一定的参考价值。
思路:按照从外圈到内圈开始旋转。根据矩阵左上角和右下角确定一圈,然后交换矩阵中数字。
class Solution { public: void rotate(vector<vector<int>>& matrix) { int tR=0,tC=0;//左上角坐标 int dR=matrix.size()-1,dC=matrix[0].size()-1;//右下角坐标 while(tR<dR){ rotateEdge(matrix,tR++,tC++,dR--,dC--); } } void rotateEdge(vector<vector<int>>&matrix,int tR,int tC,int dR,int dC){ int times=dR-tR;//每一圈需要旋转的组数 int tmp=0; for(int i=0;i<times;i++){ tmp=matrix[tR][tC+i]; matrix[tR][tC+i]=matrix[dR-i][tC]; matrix[dR-i][tC]=matrix[dR][dC-i]; matrix[dR][dC-i]=matrix[tR+i][dC]; matrix[tR+i][dC]=tmp; } } };
以上是关于旋转矩阵的主要内容,如果未能解决你的问题,请参考以下文章
MiniFly V1.1开源四轴驱动代码分析八:旋转矩阵控制分配矩阵等分析介绍