本想把二维数组转成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)) ]