LeetCode-笔记-48.旋转图像
LeetCode-笔记-48.旋转图像
1、本人思路
通过观察发现,就是将列数组从下往上组合形成一个新数组,插入到分别的行中。
因此循环次数为matrix.size();
因此代码思路如下:
class Solution {public:void rotate(vector<vector<int>>& matrix) {//观察图像可知,旋转圈数为matrix.size()/2 取整 //开始的想法/int revolve_circle_sum=matrix.size()/2;vector<int> save_numbers;//存储数组vector<vector<int>> matrix1=matrix;//存储原始数据;//再通过观察发现,就是将列数组从下往上组合形成一个新数组,插入到分别的行中//因此循环次数为matrix.size();/*for(int already_revolve_circle_sum=0;already_revolve_circle_sum<revolve_circle_sum;already_revolve_circle_sum++){}*/int for_sums=matrix.size();for(int i=0;i<for_sums;++i){for(int j=matrix.size()-1;j>=0;--j){save_numbers.push_back(matrix1[j][i]);}matrix.insert(matrix.begin()+i,save_numbers);matrix.erase(matrix.begin()+i+1);save_numbers.clear();}}
};
2、官方思路
1、思路一,与本人思路差不多。得到式子
matrix[col] [n-row-1]=matrix[row] [col]; ///( n为matrix.size())
2、思路二,原地旋转,如下图
可以得到 n为matrix.size()
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;
计算如下:
由思路一的式子得;
matrix[col] [n-row-1]=matrix[row] [col];
令row=col ,col=n-row-1;得
matrix[n-row-1] [n-col-1]=matrix[col] [n-row-1];
同理令row=n-row-1,col=n-col-1得
matrix[n-col-1] [row]=matrix[n-row-1] [n-col-1];
同理令row=n-col-1,col=row得
matrix[row] [col]=matrix[n-col-1] [row];
可得:
matrix[col][n-row-1]=matrix[row][col];
matrix[n-row-1][n-col-1]=matrix[col][n-row-1];
matrix[n-col-1][row]=matrix[n-row-1][n-col-1];
matrix[row][col]=matrix[n-col-1][row]//形成环路//于是可得:
int temp=matrix[row][col];
matrix[row][col]=matrix[n-col-1][row]//形成环路
matrix[n-col-1][row]=matrix[n-row-1][n-col-1];
matrix[n-row-1][n-col-1]=matrix[col][n-row-1];
matrix[col][n-row-1]=temp;
总共循环几次呢,可得每个圈循环(matrix.size()+1)/2;
总共几个圈呢?可得matrix.size()/2;
则代码为:
class Solution {public:void rotate(vector<vector<int>>& matrix) {int n = matrix.size();for (int i = 0; i < n / 2; ++i) {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;}}}
};
LeetCode-笔记-48.旋转图像相关推荐
- leetcode C++ 48. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。
一.思路: 某一个的转化后的路径变化:(i,j)-->(j,n-1-i)-->(n-1-i,n-1-j)-->(i,j), 所以转变一个,就等于转变4个,n为偶数数时,遍历n*n/4 ...
- 每日一道leetcode(python)48. 旋转图像
每日一道leetcode(python)48. 旋转图像 2021-07-27 给定一个 n × n 的二维矩阵 matrix 表示一个图像.请你将图像顺时针旋转 90 度. 你必须在 原地 旋转图像 ...
- Java实现 LeetCode 48 旋转图像
48. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示 ...
- LeetCode 07: T48. 旋转图像 (中等); T54. 螺旋矩阵(中等); T240. 搜索二维矩阵 II (中等)
文章目录 T19: 48. 旋转图像 (中等) 思路 解法 1: 新增数组 解法 2: 原地旋转 T20: 54. 螺旋矩阵(中等) 思路 解法: 到边界换方向 T21: 240. 搜索二维矩阵 II ...
- LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂
LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...
- Leetcode 笔记 116 - Populating Next Right Pointers in Each Node
题目链接:Populating Next Right Pointers in Each Node | LeetCode OJ Given a binary tree struct TreeLinkNo ...
- leetcode笔记(Python版)待更新
LeetCodeTop100 题目 1 两数之和 42.20% Easy 2 两数相加 30.70% Medium 3 无重复字符的最长子串 28.00% Medium ...
- LeetCode笔记:Biweekly Contest 56(补发)
LeetCode笔记:Biweekly Contest 56 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 ...
- LeetCode笔记:原地修改数组
LeetCode笔记:原地修改数组 自大学开始,我便陆陆续续的学习一些 算法和数据结构 方面的内容,同时也开始在一些平台刷题,也会参加一些大大小小的算法竞赛.但是平时刷题缺少目的性.系统性,最终导致算 ...
最新文章
- 解决Ubuntu系统下git clone下载速度较慢的问题(亲测有效)
- 火热的 Web 3,究竟离我们有多远?
- w3wp oracle连接数高,分析案例:應用服務器W3WP進程CPU持續超過百分之九十(Oracle客戶端Bug)...
- 利用安卓手机的OTG共享有线网络
- C语言跨平台游戏开发
- USGS下载遥感影像——以Landsat影像下载为例
- kafka系列之kafka分区与备份(4)
- Laravel 代码开发最佳实践
- python 处理xml
- php模拟微信公众账号登陆,[微信公众号]php版模拟登录,向指定用户推送消息目前...
- Flink SQL Client的使用
- 修改电脑配置的方法(被骗之后才学会的)
- 区块链学习笔记23——ETH反思
- Android 将本地资源图片转换成Drawable,进行设置大小
- Android 自定义seekbar【仿微信联系人】
- CodeLite工具的使用
- python中的格式化输出
- 细细品味C#——重构的艺术
- 测试计划与手动和自动化项目有何不同?
- 安装双系统后卸载统信
热门文章
- 在线作图|如何绘制一张好看相关性矩阵图
- 德国波恩大学于鹏组根系与微生物互惠方向招收博士研究生
- 随机森林RandomForest挖掘生物标记预测分类
- 2019年上半年国内学者在植物领域共发表6篇Science, 1篇Nature,1篇Cell!
- R语言plotly可视化:plotly可视化箱图、相同数据集对比使用不同分位数算法的可视化差异(quartilemethod参数、linear、inclusive、exclusive)
- R语言广义线性模型函数GLM、glm函数构建泊松回归模型、模型中存在过离散(Overdispersion)、则将连接函数从possion函数替换为quasipoisson函数重新构建泊松回归模型
- R语言str_extract函数从字符串中抽取匹配模式的字符串
- R语言pmax函数和pmin函数按位计算向量最大值、最小值实战
- Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图
- R构建对数回归模型(Logarithmic Regression)