原地旋转正方形矩阵

复制代码
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;
        }
    }
}
相关推荐
m0_587383003 分钟前
无人自助拼豆系统核心功能开发与部署落地全流程实战指南
java·经验分享·后端·struts·架构
碧海银沙音频科技研究院8 分钟前
基于炬芯ATS308X的LE aduio LC3编解码算法功能实现
算法
小蒋观天下10 分钟前
厂区人员徘徊游荡判别——基于时序轨迹速度的逗留行为分级算法落地
大数据·人工智能·深度学习·算法·机器学习·ai大模型
雷一言说12 分钟前
Spring AI 2.0:RAG 文档分块大小策略选择
java·spring
XIAEE12 分钟前
Java 世界历险记:从一行 System.out.println 到整个 Spring 宇宙
java·spring
XIAEE14 分钟前
微前端狂想曲:我试图让三个不同门派的前端住进同一栋楼
java·spring
XIAEE15 分钟前
Linux 生存指南:从"终端恐惧症"到"命令行老司机"
java·spring
XIAEE15 分钟前
实战教程:手机端死活调不出摄像头?聊聊安全上下文(Secure Context)
java·spring
程序员清风16 分钟前
堆与优先队列:从 Top K 到任务调度
java·数据结构·算法
shaibdoio16 分钟前
瞬维AI技术拆解:AI获客智能体的双层漏斗算法原理
大数据·人工智能·算法