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

【leetcode hot 100 48】旋转图像

方法一:(原地旋转)对于矩阵中第 i 行的第 j 个元素,在旋转后,它出现在倒数第 i 列的第 j 个位置。matrix[row][col]在旋转后的新位置为matrix[col][n−row−1]。只要旋转四次就能回到原点。

在这里插入图片描述在这里插入图片描述

class Solution {
    public void rotate(int[][] matrix) {
        int tmp, n=matrix.length;
        for(int i=0; i<n/2;i++){
            for(int j=0;j<(n+1)/2;j++){
                // 当n为偶数时,需要旋转(n/2)*(n/2)个数,j<n/2 等价于 j<(n+1)/2
                // 当n为奇数时,需要旋转(n/2)*((n+1)/2)个数,j<(n+1)/2 等价于 j<(n+1)/2
                tmp = matrix[i][j];
                matrix[i][j] = matrix[n-1-j][i];
                matrix[n-1-j][i] = matrix[n-1-i][n-1-j];
                matrix[n-1-i][n-1-j] = matrix[j][n-1-i];
                matrix[j][n-1-i] = tmp;
            }
        }
    }
}

注意:

  • 当n为偶数时,需要旋转(n/2)*(n/2)个数,j<n/2 等价于 j<(n+1)/2
  • 当n为奇数时,需要旋转(n/2)*((n+1)/2)个数,j<(n+1)/2 等价于 j<(n+1)/2

相关文章:

  • C++ 单词识别_牛客题霸_牛客网
  • 【pyqt】(十一)单选框
  • IDEA 2024.1.7 Java EE 无框架配置servlet
  • C# 简介以及与C、C++的区别
  • 前缀和的利用 前缀和的扩展问题
  • Figma 对图片进行模糊处理
  • 【记录】Python3|Linux下安装Virtualenv和virtualenvwrapper用于处理虚拟环境
  • nodejs去除本地文件html字符
  • 【蓝桥杯】每天一题,理解逻辑(3/90)【Leetcode 快乐数】
  • 利用 ArcGIS Pro 快速统计省域各市道路长度的实操指南
  • 专业工具,提供多种磁盘分区方案
  • Harmony os next~HarmonyOS Ability与页面跳转开发详解
  • 深入理解 C# 特性(Attributes):概念、应用与自定义
  • VS2022C#windows窗体应用程序调用DeepSeek API
  • Vue父子组件传递笔记
  • PostgreSQL 安装与使用
  • 安装与配置 STK-MATLAB 接口
  • 互联网摸鱼日报(2025-03-04)
  • android11使用gpio口控制led状态灯
  • 6. PromQL的metric name(在node exporter复制下来交给AI解释的)
  • 总奖金池百万!澎湃与七猫非虚构写作与现实题材征文大赛征稿启动
  • 中期选举后第三势力成“莎拉弹劾案”关键,菲律宾权斗更趋复杂激烈
  • 混乱的5天:俄乌和谈如何从充满希望走向“卡壳”
  • 第一集|好饭不怕晚,折腰若如初见
  • 广西北部湾国际港务集团副总经理潘料庭接受审查调查
  • 白玉兰奖征片综述丨动画的IP生命力