二刷LeetCode--48. 旋转图像(C++版本),数学题

news/2025/2/19 8:10:52/

思路:主要是观察变化之后的数组和最开始的数组的区别,不难发现,先转置在左右镜像对称即可。需要注意的是转置和镜像对称中for变量的终止条件。

class Solution {
public:void rotate(vector<vector<int>>& matrix) {// 行数int n = matrix.size();// 先转置,i j互换即可for(int i = 0;i < n;++i){// 主对角线的元素不需要转置,因此这么写就可以for(int j = i + 1;j < n;++j){swap(matrix[i][j], matrix[j][i]);}}// 然后竖着中心对称即可for(int i = 0;i < n;++i){for(int j = 0;j < n / 2;++j){// 同一行的变化,因此i不需要动// 只需要镜面对称一半即可,所以到n/2即可swap(matrix[i][j], matrix[i][n - 1 - j]);}}}
};

http://www.ppmy.cn/news/1039468.html

相关文章

步入React正殿 - React组件设计模式

目录 扩展学习资料 高阶组件 /src/components/hoc/withTooltip.js /src/components/hoc/itemA.jsx /src/components/hoc/itemB.jsx /src/App.js 函数作为子组件【Render pprops】 函数作为子组件 /src/components/rp/itemC.jsx【父组件】 /src/components/rp/withToo…

责任链模式简单实现

两种实现方式 第一种 public interface IBaseTask {public void doAction(String isTask,IBaseTask iBaseTask); }public class ChainManager implements IBaseTask{//工作类的集合private List<IBaseTask> iBaseTaskList new ArrayList<>();public void addTas…

【分享】使用FileChannel进行文件拷贝

前言: 项目实际编写中&#xff0c;使用到了多种文件拷贝方式&#xff0c;有包括专门使用c写了拷贝工具&#xff0c;供给Java调用&#xff0c;也有使用标准的输入输出流&#xff0c;这里分享的是借助 FileChannel 来读写,nio中传送数据使用channelbuffer&#xff0c;大的数据可以…

【RocketMQ】安装

文章目录 下载RocketMQ配置环境变量 下载RocketMQ 下载RocketMQ安装包 下载DashBoard 这里版本推荐选择4.9.x&#xff0c;因为比较稳定。 下载完毕之后&#xff0c;将安装包拖入到Linux环境。 之后使用unzip命令解压缩RocketMQ的安装包。 unzip ./rocketmq-all-4.9.2-bin-rel…

linux 命令--常用关机命令

1.使用shutdown命令 shutdown命令是Linux系统下最常用的关机命令之一。它可以让系统在指定时间内进行关机或者重启操作。例如&#xff0c;下面的命令可以让系统在5分钟后进行关机操作&#xff1a; sudo shutdown -h5其中&#xff0c;“-h”表示关机&#xff0c;“5”表示5分钟…

openstack的role到底怎么用

openstack权限 role&#xff1a;角色&#xff0c;在Openstack的keystone数据库中定义&#xff0c;表示一个角色。 rule: 规则&#xff0c;在Policy.yaml中定义&#xff0c;表示一个或多个role的集合。比如在nova中&#xff0c;rule用两种用法 定义role为rule,如nova中最常用…

09- DMA(DirectMemoryAccess直接存储器访问)

DMA 09 、DMA(DirectMemoryAccess直接存储器访问)DMA配置流程 09 、DMA(DirectMemoryAccess直接存储器访问) DMA配置流程 dma.c文件 main.c文件 详见《stm32中文参考手册》表57。

详解Arrays类的底层源码

1.给数据排序【Arrays.sort()】 //对整型数组进行排序 public static void sort(int[] a) {//底层使用的是快速排序【时间复杂度&#xff1a;O(nlongN)】DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0); }//对给定范围的期间内进行排序 ---> [fromIndex&#xf…