LeetCode Rotate Image
来源:互联网 发布:咏春期权交易软件 编辑:程序博客网 时间:2024/05/17 08:58
LeetCode解题之Rotate Image
原题
将一个矩阵顺时针旋转90度。
注意点:
- 最好不要申请额外空间
例子:
输入: matrix = [[1, 2, 3],
[8, 9, 4],
[7, 6, 5]]
输出: [[7, 8, 1],
[6, 9, 2],
[5, 4, 3]]
解题思路
如果可以申请额外空间,哪怕一个临时的变量,那只要找一下规律还是很容易实现的。但题目要求最好不要申请额外空间,这就需要技巧了,看到一个很巧妙的方法:先将矩阵沿着对角线翻转,再上下翻转,就可以实现顺时针旋转90度的效果。具体看如下的例子:
1 2 3 5 4 3 7 8 18 9 4 -> 6 9 2 -> 6 9 27 6 5 7 8 1 5 4 3
两次翻转对应的坐标需要细心,不然很容易搞错。
AC源码
class Solution(object): def rotate(self, matrix): """ :type matrix: List[List[int]] :rtype: void Do not return anything, modify matrix in-place instead. """ n = len(matrix) for row in range(n): for column in range(n - row): matrix[row][column], matrix[n - 1 - column][n - 1 - row] = matrix[n - 1 - column][n - 1 - row], \ matrix[row][column] for row in range(n // 2): for column in range(n): matrix[row][column], matrix[n - 1 - row][column] = matrix[n - 1 - row][column], matrix[row][column] # No need, just to test return matrixif __name__ == "__main__": assert Solution().rotate([[1, 2, 3], [8, 9, 4], [7, 6, 5]]) == [[7, 8, 1], [6, 9, 2], [5, 4, 3]]
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
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
- android 解决APN问题
- iOS高级网络简介
- 使用批处理文件启动/关闭 oracle 11g 的相关服务
- 使用mmap实现进程间通信
- JavaScript跨域总结与解决办法
- LeetCode Rotate Image
- 菜鸟学python(3) 常见变量赋值
- bootstrap-switch使用实例
- spring_ajxa
- listview在scrollView中的冲突解决
- 机器学习&深度学习经典资料汇总
- 解决kernel编译时由于加入git管理导致的version magic的问题
- 高并发的epoll+多线程
- iPhone屏幕尺寸、分辨率及适