程序员面试金典(6):像素翻转(python)
2017-08-21 11:52
225 查看
程序员面试金典(6):像素翻转(python)
题目描述
有一副由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]]
#!/usr/bin/env python # -*- coding: utf-8 -*- # Created by xuehz on 2017/8/21 class Transform: def transformImage(self, mat, n): # write code here mat.reverse() return zip(*mat) def transformImage1(self, mat, n): if mat == None or n <= 0: return mat mat_temp = [] #上下翻转 for i in xrange(n-1,-1,-1): mat_temp.append(mat[i]) for i in range(n): #主对角线翻转 for j in range(n): if i >j: tmp = mat_temp[i][j]; mat_temp[i][j] = mat_temp[j][i] mat_temp[j][i] = tmp return mat_temp if __name__ == '__main__': mat = [[1,2,3],[4,5,6],[7,8,9]] n = 3 T = Transform() print T.transformImage1(mat, n)
相关文章推荐
- 像素翻转(程序员面试金典)+数组
- 程序员面试金典 1.6 像素翻转
- 《程序员面试金典》像素翻转
- 《程序员面试金典》之像素翻转
- 程序员面试金典(2):原串翻转(python)
- 程序员面试金典第一章:数组与字符串(6) 像素翻转
- 程序员面试金典:数组--像素翻转、清除行列
- 程序员面试金典(8):翻转子串(python)
- 【程序员面试金典】像素翻转
- Python游戏开发-04-键盘方向键控制精灵移动和翻转(基于Python游戏开发-01)
- 程序员面试金典(4):空格替换(python)
- OpenCv-python之进一步认识像素
- PIL(Python Image Library) 1.1.16中对像素操作的加速
- python之批量使图片水平翻转
- 程序员面试金典 1.8 翻转子串
- python3 字符串,列表,元组的翻转
- 纯Python综合图像处理小工具(4)自定义像素级处理(剪纸滤镜)
- Python针对给定列表中元素进行翻转操作的方法分析
- GDAL获取栅格数据各个像素对应的经纬度(Python版)
- 整理关于python读取图像的像素