原地旋转正方形矩阵

复制代码
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;
        }
    }
}
相关推荐
无籽西瓜a7 分钟前
TCP三次握手与四次挥手详解含图解
java·服务器·网络·tcp/ip
晨陌y9 分钟前
Maven完整配置教程:从零基础到实战,新手零踩坑
java·maven
凌波粒12 分钟前
LeetCode--704.二分查找(数组)
算法·leetcode·职场和发展
SuniaWang12 分钟前
《Spring AI + 大模型全栈实战》学习手册系列·专题一:《RAG技术全景解析:从原理到架构设计》
java·javascript·人工智能·spring boot·后端·spring·架构
java1234_小锋12 分钟前
Java高频面试题:Spring是如何解决Bean的循环依赖?
java·开发语言·spring
xiaoye-duck13 分钟前
《算法题讲解指南:动态规划算法--路径问题》--11.按摩师,12.打家劫舍II
c++·算法·动态规划
历程里程碑15 分钟前
43. TCP -2实现英文查中文功能
java·linux·开发语言·c++·udp·c#·排序算法
计算机与认知19 分钟前
Linux Device Link机制
java·linux·服务器
代码探秘者19 分钟前
【算法篇】1.双指针
java·数据结构·人工智能·后端·python·算法
你这个代码我看不懂22 分钟前
Java软引用对象的创建以及对象回收
java·开发语言