本想把二维数组转成numpy来做,但是总是编译不过。。又是int64又是max()函数没法用的。。
尝试了import,可以用
import numpy as np
import math
class Solution:
def maxIncreaseKeepingSkyline(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
ant = 0
maxi = [max(x) for x in grid]
J = [[r[col] for r in grid] for col in range(len(grid))]
maxj = [max(x) for x in J]
for i in range(len(grid)):
for j in range(len(grid[0])):
ant += min(maxi[i]-grid[i][j], maxj[j]-grid[i][j])
return ant
python3 108ms 15.14% 涉及到横纵轴找最大值,转置等
python2 113ms 8.39% 才发现python2和python3里面排序不一样,估计提交python2的人更多
class Solution(object):
def maxIncreaseKeepingSkyline(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
r, c = len(grid), len(grid[0])
mcs = map(max, *grid)
mrs = map(max, grid)
ans = 0
for x in range(r):
for y in range(c):
ans += min(mcs[y], mrs[x]) - grid[x][y]
return ans
python2 106ms 8.92% python3则编译错误,map好像不能用
加※之后好像转置了一样的效果不能在外面使用,只能在map中好像
----------------------------------------------
还有两种二维数组转置方法
1. lrGrid = zip(*grid)
2. lrGrid = [[r[col] for r in grid] for col in range(len(grid)) ]