原地旋转正方形矩阵

复制代码
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;
        }
    }
}
相关推荐
要开心吖ZSH几秒前
定时任务是用外部调度(xxl-job)还是本地化( @Scheduled)更香?以号源刷新任务为例?
java·xxl-job·定时任务·scheduled
nagualky1232 分钟前
GPT-4 系列退役在即:一套可回滚的模型迁移验收法
java·开发语言·ai·架构
今天的砖头有点烫手啊2 分钟前
Java 8 Stream 原理拆解:惰性求值与并行流陷阱
java·jvm
垆边人似月.4 分钟前
华为题:无重复字符的最长子串变种
算法
starzy199010 分钟前
Flink 任务调度 Graph 源码深度剖析:从 StreamGraph 到 ExecutionGraph 的三层演进
java·大数据·flink
糖果豆豆11 分钟前
灾难性遗忘不是"新旧打架"——旧知识记不住,是因为它没长成"环"
算法
Eyfcom12 分钟前
〖实战〗快运系统 Oracle 性能优化:从“能用”到“扛住双11”的 Java + Spring Boot 实战
java·oracle·性能优化·快递管理系统
垆边人似月.12 分钟前
华为题:任务调度
数据结构·c++·算法
垆边人似月.13 分钟前
华为题:编辑距离
算法·华为
会灭火的程序员14 分钟前
大模型部署硬件资源计算指南:从显存估算到显卡选型
人工智能·算法