2022-07-12 1252. 奇数值单元格的数目

简介: 2022-07-12 1252. 奇数值单元格的数目

题目:


给你一个 m x n 的矩阵,最开始的时候,每个单元格中的值都是 0。

另有一个二维索引数组 indices,indices[i] = [ri, ci] 指向矩阵中的某个位置,其中 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。

对 indices[i] 所指向的每个位置,应同时执行下述增量操作:

ri 行上的所有单元格,加 1 。

ci 列上的所有单元格,加 1 。

给你 m、n 和 indices 。请你在执行完所有 indices 指定的增量操作后,返回矩阵中 奇数值单元格 的数目。

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/cells-with-odd-values-in-a-matrix

解:

class Solution:
    def oddCells(self, m: int, n: int, indices: List[List[int]]) -> int:
        lst = [[0 for j in range(n)]for i in range(m)]
      
        for indice in indices:
            row,col = indice
            for i in range(m):
                lst[i][col] +=1
            for j in range(n):
                lst[row][j] += 1
        res = 0
        for row in lst:
            for x in row:
                if x%2 == 1:
                    res += 1
        return res

看了官方题解后,发现可以优化到10行:

class Solution:
    def oddCells(self, m: int, n: int, indices: List[List[int]]) -> int:
        lst = [[0 for j in range(n)]for i in range(m)]
        for indice in indices:
            row,col = indice
            for i in range(m):
                lst[i][col] +=1
            for j in range(n):
                lst[row][j] += 1
        return sum(x%2  for row in lst for x in row  )

统计二维列表中奇数的个数,可以列表推导+sum(iterable)函数一行完成。

相关文章
|
11月前
|
算法
把数组里面数值排成最小的数
把数组里面数值排成最小的数
31 1
|
11月前
|
算法 测试技术 C#
C++前缀和算法应用:矩形区域不超过 K 的最大数值和
C++前缀和算法应用:矩形区域不超过 K 的最大数值和
|
4月前
|
Python
计算小于或等于n的非负整数区间包含的1的数量
计算小于或等于n的非负整数区间包含的1的数量
48 0
在Word中让公式在中间,公式编号右对齐
在Word中让公式在中间,公式编号右对齐
|
Python
一日一技:快速判断一个数属于等间隔范围中的位置
一日一技:快速判断一个数属于等间隔范围中的位置
91 0
|
存储 数据库
长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?
长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?
|
算法 索引
LeetCode每日一题——1252. 奇数值单元格的数目
给你一个 m x n 的矩阵,最开始的时候,每个单元格中的值都是 0。
83 0
LeetCode每日一题——1252. 奇数值单元格的数目
|
自然语言处理
Q&A | 热图的单元格颜色和数值标签可以不一一对应吗?
Q&A | 热图的单元格颜色和数值标签可以不一一对应吗?
148 0
Q&A | 热图的单元格颜色和数值标签可以不一一对应吗?
Excel - 表格设置数字下拉数值不变不递增
Excel - 表格设置数字下拉数值不变不递增
953 0
Excel - 表格设置数字下拉数值不变不递增