public class test28 {
public static void rotate(int[][] matrix){
int a =0;
int b =0;
int c = matrix.length-1;
int d = matrix[0].length-1;
while (a < c){//由于是正方形,所以行越界列一定越界
rotateEdge(matrix , a++ , b++ , c-- ,d--);
}
}
public static void rotateEdge(int[][] m, int a, int b, int c,int d){
int tmp = 0;
for(int i =0 ; i < d-b ;i++){//有多少组次
//m[a][b+i]上面一组
//m[a+i][d]右边一组
//m[c][d-i]下面一组
//m[c-i][b]左边一组
//然后不断组与组变换解决
tmp = m[a][b+i];
m[a][b+i] = m[c-i][b];
m[c-i][b] = m[c][d-i];
m[c][d-i] = m[a+i][d];
m[a+i][d] =tmp;
}
}
}
原地旋转正方形矩阵
听风客12024-08-06 9:40
相关推荐
代码什么用19 分钟前
Spring基础使用信奥卷王39 分钟前
[GESP202609 六级] 分树规划Su米苏42 分钟前
Spring AI 中MCP 与普通 @Tool的区别夏幻灵1 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解码云数智-园园1 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析老板一杯拿铁1 小时前
Java 异常体系详解:从字节码原理到最佳实践蜗牛互联网1 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退禾小西2 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?我不是阵雨2 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困