当前位置: 首页 > news >正文

矩阵-旋转图像

旋转图像

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

输入:二维数组
输出:void
思路tempMatrix[j][n - i - 1] = matrix[i][j]

class Solution {
    public void rotate(int[][] matrix) {
        //二维数组为n*n的方阵
        int n = matrix.length;
        // 使用辅助数组
        int[][] tempMatrix = new int[n][n];
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                tempMatrix[j][n - i - 1] = matrix[i][j];
            }
        }
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                matrix[i][j] = tempMatrix[i][j];
            }
        }
    }
}

但是原题说明不能使用另外一个数组来旋转图像,所以使用新方法

class Solution {
    public void rotate(int[][] matrix) {
        //二维数组为n*n的方阵
        int n = matrix.length;
        //保证不重复不遗漏
        for(int i = 0; i < n / 2; i++){
            //j
            for(int j = 0; j < (n + 1) / 2; j++){
                int temp = matrix[i][j];
                matrix[i][j] = matrix[n - j - 1][i];
                matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];
                matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];
                matrix[j][n - i -1] = temp;
            }
        }
    }
}

在这里插入图片描述
图中四个位置的值替换,可以使用temp变量临时存储,使用两数交换的方法进行四个数交换
关键在于为了使交换不重复和不遗漏,注意代码中i和j的上限值
在这里插入图片描述
在这里插入图片描述

相关文章:

  • Web - JS基础语法与表达式
  • 手机怎样玩电脑游戏?
  • OSPF基础知识总结
  • Nginx学习笔记:常用命令端口占用报错解决Nginx核心配置文件解读
  • Linux 安装 Nginx
  • 开源一款I2C电机驱动扩展板-FreakStudio多米诺系列
  • 20250221 NLP
  • Selenium实战案例1:论文pdf自动下载
  • 体育电竞比分网开发流程
  • 内容中台驱动企业智能运营升级
  • Java多线程深度解析
  • 【总结】GraphRAG与传统RAG的深度对比及主流项目分析
  • 麒麟v10 飞腾架构 配置Qt编译环境
  • Hive Orc表数据导出和导入
  • DEMF模型赋能多模态图像融合,助力肺癌高效分类
  • 以太网的PHY(物理层)详解
  • fastadmin实现海报批量生成、邮件批量发送
  • 回溯算法:解数独
  • 单词接龙--蒟蒻解析
  • 【够用就好005】-在VSCode中管理ECS服务器的实操步骤
  • 上海小学生暑(寒)托班会增设开办期数、延长办班时间吗?团市委回应
  • 义乌至迪拜“铁海快线+中东快航”首发,物流成本降低18%
  • 大学2025丨北大教授陈平原:当卷不过AI时,何处是归途
  • 2025年“新时代网络文明公益广告”征集展示活动在沪启动
  • 蒋圣龙突遭伤病出战世预赛存疑,国足生死战后防线严重减员
  • 黑龙江省政府副秘书长许振宇,拟任正厅级领导