【leetcode】第48题:矩阵转置90度
2016-02-28 20:54
253 查看
1.我自己想到的解法思想如下:
(i,j)-->(j,n-1-i)
代码如下:
Java:
C语言:
2.大神们的解法
思想如下:
1.先交换i,j
图示:
1 4 7
2 5 8
3 6 9
然后再讲第一列和最后一列交换:
7 4 1
8 5 2
9 6 3
java:
大家如果也有更好的解法也可以交流下
。
(i,j)-->(j,n-1-i)
代码如下:
Java:
public static void rotate(int[][] matri){ int n = matri.length; int[][] matri1 = new int ; for(int i = 0;i<n;i++) for(int j = 0;j<n;j++) matri1[i][j] = matri[i][j]; for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++) matri[j][n-1-i] = matri1[i][j]; }
C语言:
void reverseMatri(int v[],int m, int n,int output[]){ for(int i = 0;i<m;i++){ for(int j = 0;j<n;j++){ output[j*n+n-1-i] = v[i*n+j]; } } }
2.大神们的解法
思想如下:
1.先交换i,j
图示:
1 4 7
2 5 8
3 6 9
然后再讲第一列和最后一列交换:
7 4 1
8 5 2
9 6 3
java:
public void rotate(int[][] matrix) { /* int n = matri.length; //先转置矩阵到此为位置 for(int i = 0;i<n;i++) for(int j = 0;j<n;j++){ int temp ; temp = matri[i][j]; matri[i][j] = matri[j][i]; matri[i][j] = temp; } for(int i = 0;i<n;i++){ temp = matri[i][n-1]; matri[i][0] = matri[i][n-1]; matri[i][n-1] = temp; } */ for(int i = 0; i<matrix.length; i++){ for(int j = i; j<matrix[0].length; j++){ int temp = 0; temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } for(int i =0 ; i<matrix.length; i++){ for(int j = 0; j<matrix.length/2; j++){ int temp = 0; temp = matrix[i][j]; matrix[i][j] = matrix[i][matrix.length-1-j]; matrix[i][matrix.length-1-j] = temp; } }
大家如果也有更好的解法也可以交流下
。
相关文章推荐
- 半年总结
- Linux信号概述
- QML 中神秘的 Component
- stat查找权限以数字形式显示
- kali2.0 Metasploit连接postgres数据库
- C json实战引擎 二 , 实现构造部分
- (2016.2.28)寒假第三次作业随笔
- ROS launch file 写法
- linux精讲——su切换用户
- 删除事件处理程序如何解决
- ubuntu 系统配置维护 常用命令
- MOOC《Linux内核分析》第一课
- [LeetCode]236 二叉树的最近公共父亲节点
- leetcode笔记:Majority Element II
- 安全卫士第三天
- 导入表
- python常用异常
- 菩提本无树,明镜亦非台。本来无一物,何处惹尘埃.
- uva 10780 素因子分解
- 计算机网络部分基础知识