leetcode 【 Rotate Image 】python 实现
2024-09-08 08:09:30
题目:
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?
代码:oj测试通过 Runtime: 53 ms
class Solution:
# @param matrix, a list of lists of integers
# @return a list of lists of integers
def rotate(self, matrix):
if matrix is None:
return None
if len(matrix[0]) < 2 :
return matrix N = len(matrix[0]) for i in range(0, N/2, 1):
for j in range(i, N-i-1, 1):
ori_row = i
ori_col = j
row = ori_row
col = ori_col
for times in range(3):
new_row = col
new_col = N-row-1
matrix[ori_row][ori_col],matrix[new_row][new_col] = matrix[new_row][new_col],matrix[ori_row][ori_col]
row = new_row
col = new_col
return matrix
思路:
题意是将一个矩阵顺时针旋转90°
小白的解决方法是由外层向里层逐层旋转;每层能够组成正方形对角线的四个元素依次窜一个位置(a b c d 变成 d a b c)。
四个元素转换位置的时候用到一个数组操作的技巧,每次都要第一个位置的元素当成tmp,交换第一个位置的元素与指针所指元素的位置。
原始:a b c d
第一次交换:b a c d
第二次交换:c a b d
第三次交换:d a b c
这样的好处是代码简洁一些 思路比较连贯
Tips:
每层循环的边界条件一定要考虑清楚,小白一开始最外层循环的上届一直写成了N,导致一直不通过,实在是太低级的错误。以后还要加强代码的熟练度,避免出现这样的低级判断错误。
最新文章
- juery实现贪吃蛇的游戏
- React Native系列文章
- Activity详解三 启动activity并返回结果
- sql server 替换特殊符号
- ASP.net解析JSON例子
- cotex_m3内核提供的ITM串口打印调试
- Words in Coding Theory
- javascript读取本地文件
- 一周学会Mootools 1.4中文教程:(4)类型
- HDU2037今年暑假不AC(贪心)
- 高并发秒杀系统--Service事务管理与继承测试
- day25_python_1124
- 065 xftp的使用
- UIGestureRecognizer和UITouch
- CSDN日报20170312——《成功人士的七个习惯》
- Java回调方法的设计思路
- JavaScript实现排序算法总结
- python处理csv
- C语言宏的定义和宏的使用方法(#define)
- 【最小割】【Dinic】【强联通分量缩点】bzoj1797 [Ahoi2009]Mincut 最小割