Rotate Image
来源:互联网 发布:c语言struct 编辑:程序博客网 时间:2024/06/08 01:10
问题描述
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
For example:
Input: [[1, 2], [3, 4]]
Output: [[3, 1], [4, 2]];
思考:怎么变换使用O(1)的空间
想法:先对矩阵进行对角线变换,然后对每一行,进行逆序变换
public class Solution { public void rotate(int[][] matrix) { diagSwap(matrix); rowReverse(matrix); } private void diagSwap(int[][] matrix){ if (matrix.length < 2) return; for(int i = 0; i < matrix.length; i++) for(int j = 0; j < i; j++) swap(i, j, j, i, matrix); } private void swap(int oR, int oC, int Tr, int Tc, int[][] matrix){ int temp = matrix[oR][oC]; matrix[oR][oC] = matrix[Tr][Tc]; matrix[Tr][Tc] = temp; } private void rowReverse(int[][] matrix){ if(matrix.length == 0 ) return ; int len = matrix[0].length; for(int i = 0; i < matrix.length; i++) for(int j = 0; j < (len >> 1); j++) swap(i, j, i, len - j - 1, matrix); }}
0 0
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- CSS学习:常见元素分类
- Python 中的修饰器理解
- Java 编程下 Overload 和 Override 的区别
- linux线程的实现
- Android小技巧
- Rotate Image
- C#实现定时全屏截图并且保存到预先设定好的文件夹中的代码示例
- 面试笔记-Java
- PHP关于__autoload的用法
- 单例模式
- android 五种数据存储方式
- Android 布局
- 如何获取Weka源码
- 断点调试