[leetcode] Rotate Image
来源:互联网 发布:app源码怎么用 编辑:程序博客网 时间:2024/05/08 19:15
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
思路:因为要in-place的进行转置,所以不能用另外一个二维数组来存。总体思路是,比如下面这个矩阵
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
置换过程中,一圈一圈得进行。先进行外圈的置换,1换到4,4换到16,16换到13, 13换到11,然后再进行2换到8,8换到15,15换到9,9换到2,这样以此类推,外圈换完了换内圈。这样只需要两个temp的额外空间。困难的点在于推导每个点的坐标。代码如下:
class Solution: # @param matrix, a list of lists of integers # @return a list of lists of integers def rotate(self, matrix): n = len(matrix) if n == 1: return matrix start = 0 end = n-1 level = 0 while level <= n/2-1: for i in range(start, end): tmp = matrix[level+i-start][end] matrix[level+i-start][end] = matrix[level][i] tmp1 = matrix[n-level-1][end-i+start] matrix[n-level-1][end-i+start] = tmp matrix[level][i] = matrix[n-level-1-i+start][start] matrix[n-level-1-i+start][start] = tmp1 start += 1 end -= 1 level += 1 return matrix
0 0
- LeetCode: Rotate Image
- [Leetcode] Rotate Image
- LeetCode : Rotate Image
- [LeetCode] Rotate Image
- leetcode 67: Rotate Image
- [leetcode] Rotate Image
- [Leetcode] Rotate Image
- [LeetCode]Rotate Image
- LeetCode-Rotate Image
- [leetcode] Rotate Image
- LeetCode - Rotate Image
- leetcode之Rotate Image
- LeetCode - Rotate Image
- Leetcode: Rotate Image
- LeetCode:Rotate Image
- Leetcode: Rotate Image
- Leetcode Rotate Image
- leetcode Rotate Image
- 频域
- Magento开发文档(六):Magento模型启动资源
- oracle基础学习
- linux前后台进程
- 1024. Palindromic Number (25)
- [leetcode] Rotate Image
- 学习GDB调试(一)
- SpringMVC入门
- 《实战nginx》第6章-Nginx负载均衡和反向代理的配置与优化
- 第13周项目5-统计大小写字母个数
- brk和sbrk及内存分配函数相关
- Magento开发文档(七):Magento EAV模型
- 2014年11月24日--11月30日(共27小时,剩0/407小时)
- ios真机调试如现 Could not change executable permissions on the application