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

矩阵--旋转图像

给定一个 × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

示例 :

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

方法一:(测试只适用于3*3)

void rotate(vector<vector<int>>& matrix)
{int m = matrix.size(), n = matrix[0].size();if (m == 0 || n == 0){return;}vector<vector<int> > new_matrix(m, vector<int>(n, 0));int right = n - 1, down = m - 1;for (int i = 0; i < m; ++i){for (int j = 0; j < n; ++j){if (i == 0){new_matrix[j][i + down] = matrix[i][j];}else if (j == 0 && i == down){new_matrix[j][i - down] = matrix[i][j];}else if (j > 0 && j < right && i == down){new_matrix[j][i - down] = matrix[i][j];}else if (i == down && j == right){new_matrix[j][i - down] = matrix[i][j];}else{new_matrix[j][i] = matrix[i][j];}}}for (int i = 0; i < m; ++i){for (int j = 0; j < n; ++j){cout << new_matrix[i][j] << " ";}cout << endl;}
}
//void Print(vector<vector<int>>& matrix)
//{
//	int m = matrix.size(), n = matrix[0].size();
//	for (int i = 0; i < m; ++i)
//	{
//		for (int j = 0; j < n; ++j)
//		{
//			cout << matrix[i][j] << " ";
//		}
//		cout << endl;
//	}
//}
int main()
{//vector<vector<int> > matrix = { {5, 1, 9, 11},{2, 4, 8, 10},{13, 3, 6, 7},{15, 14, 12, 16} };vector<vector<int>> matrix = { {1,2,3},{4,5,6},{7,8,9} };rotate(matrix);return 0;
}

方法二:

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


http://www.mrgr.cn/news/6633.html

相关文章:

  • windows核心编程 内核对象,创建进程(CreateProcess),管道(CreatePipe)
  • 图形学论文笔记
  • 什么是粘包(TCP)
  • 开源模型应用落地-qwen2-7b-instruct-LoRA推理Gradio-Axolotl-单机单卡-V100(十一)
  • 安卓逆向软件分享 | AndroidKiller
  • wpf 定制 个性圆角信息面板
  • 机器学习基础(Datawhale X 李宏毅苹果书 AI夏令营)
  • conda大全及实操
  • Circuitjs 快捷键完全列表
  • Python酷库之旅-第三方库Pandas(090)
  • 小琳AI课堂:Llama——NLP界的多面手
  • 【代码随想录训练营第42期 Day38打卡 - 动态规划Part6 - LeetCode 322. 零钱兑换 279.完全平方数 139.单词拆分
  • <数据集>遥感船舶识别数据集<目标检测>
  • 微信小程序用 pinia数据化存储信息
  • mysql regexp匹配多个字符串
  • 【Qt笔记】QPushButton控件详解
  • 游戏如何对抗 IL2cppDumper逆向分析
  • Centos7配置代理安装最新版Docker并拉取镜像
  • react 中的useState useEffect
  • MySQL用户与权限管理