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

Leetcode JAVA刷刷站(48)旋转图像

一、题目概述

二、思路方向

       要在原地顺时针旋转一个 n x n 的二维矩阵 90 度,你可以通过一系列交换操作来实现。这里的关键在于理解旋转后的矩阵与原矩阵之间的元素对应关系。

       假设原矩阵为 matrix,其中 matrix[i][j] 表示第 i 行第 j 列的元素。旋转 90 度后,matrix[i][j] 的新位置变为 matrix[j][n-1-i]

       由于要原地旋转,我们不能直接按这个关系来赋值,因为这会导致原始数据丢失。相反,我们可以使用一种“层”的概念,从外向内逐层交换元素。每一层包含四个边(两个行边和两个列边),我们按顺时针方向交换这四个边上的元素。

三、代码实现  

public class Solution {  public void rotate(int[][] matrix) {  int n = matrix.length;  // 先沿对角线翻转矩阵  for (int i = 0; i < n; i++) {  for (int j = i; j < n; j++) {  int temp = matrix[i][j];  matrix[i][j] = matrix[j][i];  matrix[j][i] = temp;  }  }  // 然后反转每一行  for (int i = 0; i < n; i++) {  int left = 0, right = n - 1;  while (left < right) {  int temp = matrix[i][left];  matrix[i][left] = matrix[i][right];  matrix[i][right] = temp;  left++;  right--;  }  }  }  
}

执行结果: 

四、小结

       这个解决方案首先将矩阵沿对角线翻转(即交换 matrix[i][j] 和 matrix[j][i]),然后反转每一行。这两步操作结合起来,就实现了矩阵的顺时针 90 度旋转。

       这种方法的时间复杂度是 O(n^2),其中 n 是矩阵的边长,因为我们需要访问矩阵中的每个元素两次(一次是对角线翻转,一次是行反转)。空间复杂度是 O(1),因为我们是在原地修改矩阵,没有使用额外的空间(除了几个用于交换的临时变量)。

 结语  

在这喧嚣的世界里

找到一片属于自己的宁静之地

让心灵得以栖息

!!!

http://www.lryc.cn/news/428401.html

相关文章:

  • 编译型语言和解释型语言
  • TensorRT 和 PyTorch区别
  • iOS 17.6.1版本重发,修复高级数据保护错误
  • 【排序算法】八大排序(上)(c语言实现)(附源码)
  • Python版《超级玛丽+源码》-Python制作超级玛丽游戏
  • 互联网私有IP地址列表
  • 光伏项目管理软件为什么那么多光伏人在用?
  • 《AOP实战》— 自定义注解
  • 微前端架构下的单页应用实现策略
  • JWT(JSON Web Token)工作原理及特点
  • 【体检】程序人生之健康检查,全身体检与预防疫苗,五大传染病普筛,基因检测等
  • 汇编语言中的指令锁定:解锁高效并发编程
  • 《人工智能时代:金融投资决策的潜在系统性风险及防范策略》
  • MT7621+MT7915(MT7905)+MT7975 (W7621A6G-SDK)编译固件与升级固件方法
  • [php:\\filter]
  • Linux-环境变量
  • DISCUZ论坛中 “阅读权限10“这几个字的修改教程以及后台目录路径修改后的管理路径
  • springboot 整合spring-boot-starter-data-elasticsearch
  • Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~
  • 【vue讲解:es6导入导出语法、 vue-router简单使用、登录跳转案例、scoped的使用、elementui使用】
  • #beego的orm一直引入失败#
  • Vue插值:双大括号标签、v-text、v-html、v-bind 指令
  • 实验五之用Processing绘画
  • Apache CloudStack Official Document 翻译节选(七)
  • 动态创建 Delphi 按钮的完整指南:基于配置文件的 `TGridPanel` 实现
  • 【设计模式】工厂模式和抽象工厂模式
  • 【xilinx】Versal Adaptive SoC DDRMC - NoC QoS 选项卡未出现
  • 融合创新:EasyCVR视频汇聚平台云计算技术与AI技术共筑雪亮工程智能防线
  • keepalived的技术原理及其在负载均衡场景中的应用
  • 树的重心 by江河湖海