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

力扣48. 旋转图像

给定一个 × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]     

输出:[[7,4,1],[8,5,2],[9,6,3]]

示例 2:

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]

输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

使用另一个矩阵:

class Solution {
public:void rotate(vector<vector<int>>& matrix) {auto matrix_new=matrix;//矩阵复制int m=matrix.size();for(int i=0;i<m;i++){for(int j=0;j<m;j++){matrix_new[j][m-i-1]=matrix[i][j];}}matrix=matrix_new;}
};

auto matrix_new=matrix;这行代码的作用是创建了一个名为 matrix_new 的新矩阵,并将 matrix 的内容复制到了这个新矩阵中。在 C++ 中,使用 auto 关键字可以让编译器自动推断变量的类型。在这里,auto matrix_new 会被推断为 vector<vector<int>> 类型,因为它与 matrix 的类型相同。

matrix=matrix_new; 这行代码的作用是将新复制的矩阵 matrix_new 赋值给原始矩阵 matrix(在创建新矩阵时使用auto自动推导类型,这里直接赋值即可完成整体拷贝)

对于 vector 或者二维矩阵这样的容器,直接使用等号赋值可以实现元素的拷贝。这是因为 C++ 中的 vector 和二维矩阵都重载了赋值运算符,使得在这些容器之间进行赋值操作时,会自动拷贝其内容。

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

相关文章:

  • 【踩坑日记】I.MX6ULL裸机启动时由于编译的程序链接地址不对造成的程序没正确运行
  • 【计算机网络仿真实验-实验2.6】带交换机的RIP路由协议
  • Apache网页优化
  • OpenCV形态学
  • 首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板 | 苹果CMSV10主题
  • 永磁同步直线电机(PMLSM)控制与仿真2-永磁同步直线电机数学模型搭建
  • MPLS VPN一
  • 39python数据分析numpy基础之h5py读写数组数据到h5文件
  • 2024全新仿麻豆视频苹果cms源码v10影视模板
  • 这世上又多了一只爬虫(spiderflow)
  • SpringMVC框架学习笔记(七):处理 json 和 HttpMessageConverter 以及文件的下载和上传
  • 八、BGP
  • 有监督学习——支持向量机、朴素贝叶斯分类
  • 自动化测试文档
  • vue-i18n使用步骤详解(含完整操作步骤)
  • XXE漏洞修补:保护您的系统免受XML外部实体攻击
  • 去除upload的抖动效果
  • 什么是 Linux ?(Linux)
  • uni-app 怎么在tabbar使用阿里图标库
  • 勒索病毒剖析
  • 【C++11】第一部分(一万六千多字)
  • FPGA专项课程即将开课,颁发AMD官方证书
  • C++ shared_ptr
  • 2024.6.15
  • 堆栈溢出的攻击 -fno-stack-protector stack smash 检测
  • 掌握特劳特定位理论核心,明晰企业战略定位之重
  • RAGFlow 学习笔记
  • 使用Docker-Java监听Docker容器的信息
  • Spring Boot + Mybatis Plus实现登录注册
  • IDEA创建web项目