31 Oct 2017
Note: Try to solve this task in-place (with O(1) additional memory), since this is what you’ll be asked to do during an interview.
You are given an n x n 2D matrix that represents an image. Rotate the image by 90 degrees (clockwise).
Example
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
the output should be
rotateImage(a) =
[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]]
Input/Output
[time limit] 4000ms (py)
[input] array.array.integer a
Guaranteed constraints:
1 ≤ a.length ≤ 100,
a[i].length = a.length,
1 ≤ a[i][j] ≤ 104.
[output] array.array.integer
个人解法
def rotateImage(a): shift_a = a[::-1] retate_a = [x for x in zip(*shift_a)] return retate_a
原本写的惨不忍睹,这是根据下面精品写法改善了一下可读性贴上来
精品解法
rotateImage = lambda a: zip(*a[::-1])
重点在于
a[::-1]翻转列表,*args解压参数