《剑指offer》像素翻转
2017-07-16 12:49
141 查看
题目:有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。
给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。
测试样例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]
解析:思想是先上下对折,然后再沿对角线对折
给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。
测试样例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]
解析:思想是先上下对折,然后再沿对角线对折
原矩阵 顺时针旋转90度结果 // 1 2 3 7 4 1 // // 4 5 6 8 5 2 // // 7 8 9 9 6 3 public static int[][] transformImage(int[][] mat, int n) { for(int i=0;i<n/2;i++){//上下翻转 for(int j=0;j<n;j++){ int temp =mat[n-1-i][j]; mat[n-1-i][j]=mat[i][j]; mat[i][j]=temp; } } int index=0; //只是翻转上三角 for(int i=0;i<n;i++){//对角线翻转 index=i; for(int j=index;j<n;j++){ if(i!=j){// int temp =mat[i][j]; mat[i][j]=mat[j][i]; mat[j][i]=temp; } } index++; } return mat; }
相关文章推荐
- 剑指offer--翻转单词顺序列
- 像素翻转、清除行列、彻底搞懂int *a[10]和int (*a)[10]
- 像素翻转
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 程序员面试金典(6):像素翻转(python)
- 剑指Offer面试题:34.翻转单词顺序VS左旋转字符串
- 【程序员面试金典】像素翻转
- 剑指offer系列之四十四:翻转单词顺序
- WinAPI: InvertRect - 翻转矩形中像素的颜色
- 剑指offer刷题之c、c++实现的翻转单词顺序列
- 像素翻转
- 剑指Offer-16-翻转链表
- OpenCV 图像的翻转 flip实现 与遍历像素的方式实现
- 剑指Offer(58)翻转字符串
- 剑指offer——像素翻转
- 像素翻转
- 剑指offer解题报告(Java版)——翻转单词顺序 左旋字符串 42
- 图片像素翻转。水平翻转,垂直翻转。
- 《剑指offer》刷题笔记(知识迁移能力):翻转单词顺序列
- 剑指Offer(58)翻转单词顺序列(题目二)