2022-12-08 2482

2482 leetcode

给你一个下标从 0 开始的 m x n 二进制矩阵 grid 。

我们按照如下过程,定义一个下标从 0 开始的 m x n 差值矩阵 diff :

令第 i 行一的数目为 onesRowi 。
令第 j 列一的数目为 onesColj 。
令第 i 行零的数目为 zerosRowi 。
令第 j 列零的数目为 zerosColj 。
diff[i][j] = onesRowi + onesColj - zerosRowi - zerosColj
请你返回差值矩阵 diff 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/difference-between-ones-and-zeros-in-row-and-column
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:
    def onesMinusZeros(self, grid: List[List[int]]) -> List[List[int]]:
        yirow =[2*sum(a) for a in grid] 
        yishu =[2*sum(a) for a in zip(*grid)]  
        y=len(yirow) 
        x=len(yishu)  
        g=-y-x
        ans =[]
        for a in range(y):
            t=[]
            se =yirow[a]+g
            for b in range(x):
                t.append(se +yishu[b]) 
            ans.append(t)
        return ans
'''
推导过程,以及尽量减少循环内的计算量
diff[i][j] = onesRowi + onesColj - zerosRowi - zerosColj
zeroRowi = x - onesRowi 
zerosColj =y -onesColj
g=-x-y
diff[i][j] = onesRowi*2 + onesColj*2 +g
最一开始,就2倍,避免循环中乘法 
能循环外加法,就循环外面做
'''


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 9,801评论 0 0
  • 本教程是基于Numpy1.14官方网站的文档 原文地址:点我呀 为本人在备考期间利用课余时间进行翻译的,预计在一周...
    刘点石阅读 14,862评论 1 31
  • to-do:看一下别人写的题解 https://github.com/981377660LMT/algorithm...
    winter_sweetie阅读 4,179评论 1 0
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 10,553评论 0 18
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 4,991评论 0 5