代码拉取完成,页面将自动刷新
分析:
这题思路可能比较清晰,但实现起来磕磕绊绊的地方可能比较多。每个人按照自己的思维找到一个好的方法就可以了,我把我自己的方法分享一下:
首先要看到重要信息:
旋转其实就是一个中心对称问题找点的问题,我们可以将这个矩阵分为任意四部分,其中一个部分某个点作为起始点开始交换操作。明显看的出来是左开右闭的操作。
在具体确定好(i,j)后,找到对应其他三个点的坐标。坐标其实也是很有规律的,需要自己相通就行,这里就不带大家推导了,点和对面的点中点是矩阵中心,可以进行验算。
实现代码为:
public void rotate(int[][] matrix) {
int len=matrix.length;
for(int i=0;i<len/2;i++)//第i行
{
int team=0;
for(int j=i;j<len-i-1;j++)//每个数进行四次操作
{
int x1=i,y1=j;
int x2=j,y2=len-i-1;
int x3=len-i-1,y3=len-j-1;
int x4=len-j-1,y4=i;
team=matrix[x1][y1];
matrix[x1][y1]=matrix[x4][y4];
matrix[x4][y4]=matrix[x3][y3];
matrix[x3][y3]=matrix[x2][y2];
matrix[x2][y2]=team;
}
}
}
结语:好了今天就到这里了,欢迎关注原创技术公众号:【bigsai】,回复进群加笔者微信一起加入打卡!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。