1252 奇数值单元格的数目(模拟)

1. 问题描述:

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

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

你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1。

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

示例 1:

输入:n = 2, m = 3, indices = [[0,1],[1,1]]
输出:6
解释:最开始的矩阵是 [[0,0,0],[0,0,0]]。
第一次增量操作后得到 [[1,2,1],[0,1,0]]。
最后的矩阵是 [[1,3,1],[1,3,1]],里面有 6 个奇数

输入:n = 2, m = 2, indices = [[1,1],[0,0]]
输出:0
解释:最后的矩阵是 [[2,2],[2,2]],里面没有奇数

提示:

1 <= n <= 50
1 <= m <= 50
1 <= indices.length <= 100
0 <= indices[i][0] < n
0 <= indices[i][1] < m

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cells-with-odd-values-in-a-matrix

2. 思路分析:

主要是模拟其中的过程即可,声明一个方法来对列表对应的行或者列进行加1操作,最后统计出奇数的数量即可

3. 代码如下:

class Solution:
    def oddCells(self, n: int, m: int, indices: List[List[int]]) -> int:
        # 第三个参数为标志为0时为行 1为列
        def solve(matrix, index, flag):
            if flag == 0:
                for i in range(len(matrix[0])):
                    matrix[index][i] += 1
            else:
                for i in range(len(matrix)):
                    matrix[i][index] += 1

        # 首先是初始化二维列表:类似于声明一个二维数组
        # 其实列表与数组的访问时一样的可以看成是数组
        matrix = [[0] * m for i in range(n)]
        for row in range(len(indices)):
            solve(matrix, indices[row][0], 0)
            solve(matrix, indices[row][1], 1)
        res = 0
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if matrix[i][j] % 2 == 1:
                    res += 1
        return res

 

热门文章

暂无图片
编程学习 ·

JS面试题

霖呆呆的近期面试128题汇总(含超详细答案) | 掘金技术征文 由浅入深,66条JavaScript面试知识点 2020 前端面试 | 第一波面试题总结 2020 前端面试 | 第二波面试题总结 window.onload和$(document).ready()区别 window.onload必须等到页面内的所有元素加载完毕后才能执行 所有元…
暂无图片
编程学习 ·

自举功能 - 软件复位

说明对于需要长时间运行的电子产品,例如:安防监控等,如果设备程序崩溃后不能自动恢复,可能会出现以下情况:设备操作无反应,用户以为设备坏掉了,并不知道需要断电重启,对产品质量怀疑。 程序崩溃后所有功能中断,有些重要并且需要长时间稳定运行的功能无法延续,例如:定…
暂无图片
编程学习 ·

3.1.2 Jsoup请求URL

org.jsoup.Jsoup类可以用来处理连接操作。在org.jsoup.Jsoup类中提供了connect(String url)方法来创建一个新连接,该方法的实现依赖于Java网络通信包java.net。在创建连接之后,可通过具体请求方法(GET或POST等)获取URL对应的HTML文件。 如需要采集某页面中的文本内容。首先,…
暂无图片
编程学习 ·

中断、异常、系统调用的概念

系统调用是由应用程序发起的,意思是应用程序主动向操作系统发出服务请求。 异常是由不良的应用程序发起的,意思是非法指令或者其他坏的处理状态,比如内存出错。 中断是由外设发起的,它来自于不同硬件设备的计时器或者网络的中断。
暂无图片
编程学习 ·

工科中的设计思维

超星学习通app工科中的设计思维网课答案,工科中的设计思维尔章节测验网课答案1.1 走近设计思维1【单选题】本门课程讲述的主要内容不包括()。A、设计思维这一学习形式和思维方式B、一系列有用的创新工具和创造技法C、工科学生需要用到的专业设计软件D、系统化的设计流程和与众…
暂无图片
编程学习 ·

Android中给Layout添加点击事件

@Android中给Layout添加点击事件 步骤一:在layout控件中设置clickable和focuseable和id <LinearLayout android:id="@+id/to_anchor_dialog" android:onClick=“onClick” android:clickable=“true” android:layout_width=“match_parent” android:layout_hei…
暂无图片
编程学习 ·

int 作为POJO类属性的坑

int 作为POJO类属性的坑Lombok 主键更新 updateById ,这一句主键更新没有更新floorNumber 但是floorNumber 每次都被更新为 0@ApiModelProperty(value = "楼层")private int floorNumber;Integer up = 100; baseMapper.updateById(AppVillageCircleComment.builde…
暂无图片
编程学习 ·

Docker的帮助和镜像命令

帮助命令 docker version 查看docker版本 docker info 显示全系统信息 docker --help 显示docker相关的所有命令 镜像命令 列表镜像 docker images 列表本机上的镜像REPOSITORY --表示镜像的仓库源 TAG --表示镜像的标签 IMAGE ID --镜像的ID CREATED --镜像的创建时间 SIZE --…
暂无图片
编程学习 ·

纸片人算什么?教你造真“3D小姐姐”!可以动的模型

要说现在什么行业最赚钱,非游戏莫属!要说游戏中什么类型最赚钱?非3D建模莫属! 据统计,刚入行的从业人员均薪1万-1.3万,如果做到总监,行业平均年薪30万+!他们的日常就是创造游戏里各种各样的小姐姐和自己心仪的角色。 玩游戏的人都知道,第一眼吸引我们的总是游戏中精美…
暂无图片
编程学习 ·

mmdetection训练出现:IndexError: list index out of range 错误

mmdetection训练出现:IndexError: list index out of range 错误文章目录:1 问题分析1.1 尝试解决错误:第一次1.2 尝试解决错误:第二次2 我的问题解决方式我的环境:Ubuntu18.04 TorchVision: 0.6.0 OpenCV: 4.2.0 MMCV: 0.5.5 MMDetection: 2.0.0+d9c8f14 MMDetection Com…
暂无图片
编程学习 ·

faster-rcnn流程(mmdetection)

参考:http://chr10003566.github.io/2019/12/03/mmdetection(2)/ part1 测试mmdetection(通过读取一张图片,显示效果) demo.py from mmdet.apis import init_detector, inference_detector, show_result_pyplot import mmcvconfig_file = /home/ming/work/mmdetection/conf…
暂无图片
编程学习 ·

css border-radius的用法及自适应的椭圆

我们知道border-radius允许您为元素添加圆角边框! 而border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性。 如果省略 bottom-left,则与 top-right 相同。如果省略 bottom-right,则与 top-left 相同。如果省略 top-right,则与 top-left 相同。 先看个例子…
暂无图片
编程学习 ·

Android 8.0 蓝牙遥控器自动配对

本文要实现的是在 android 8.0 的平台上,蓝牙遥控器与TV自动配对,具体就是在TV端打开配对界面,TV端开始搜索远程蓝牙设备,按下遥控器按键让蓝牙遥控器进入对码模式,此时蓝牙遥控器就能作为一个远程蓝牙设备被发现,TV端扫描到这个远程蓝牙设备(蓝牙遥控器),就会自动进行…
暂无图片
编程学习 ·

JavaScript 详解预编译原理

JavaScript 预编译原理 今天用了大量时间复习了作用域、预编译等等知识 看了很多博文,翻开了以前看过的书(好像好多书都不会讲预编译) 发现当初觉得自己学的很明白,其实还是存在一些思维误区 (很多博文具有误导性) 今晚就整理了一下凌乱的思路 先整理一下预编译的知识吧,…
暂无图片
编程学习 ·

LeetCode——remove n-th node from end of list

题目描述: 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.↵↵ 删除了链表的倒数第n个节点之后,链表变为1->2->3->5. 备注: 题目保证n一定是合法的 请尝试只用一步操作完成该功能 解题思路: 删除…
暂无图片
编程学习 ·

网上书城前端界面设计

网上书城界面设计前言界面设计首页登录注册书籍搜索购物车代码实现总结 前言 接着我的上一篇博客来,今天为大家分享的内容是网上书城项目的界面设计以及代码分析 网上书城项目需求分析、功能划分、数据库表设计、工具类介绍 界面设计 首页首页的话,主要涉及到了BootStrap的相…
暂无图片
编程学习 ·

01 HTML知识笔记(标签—布局)

本人使用的是sublime text3编辑器,这款软件的汉化破解版会随资料一起上传的😀然后找到的一些比较好的博文同大家一起share!!!Sublime text 3 汉化 破解版 分享Sublime Text3快捷键大全用sublime text3编写的html网页用浏览器打开出现中文乱码的原理及解决方法目录一、htm…
暂无图片
编程学习 ·

String常用API

这里写目录标题什么是JDK API文档注释规范字符串String以及常用的APIString常量池String常用APIStringBuilderStringBuffer 什么是JDK APIJDK中包含大量打API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些已写好.可供直接调用的功能(在Java语言中…
暂无图片
编程学习 ·

关于atomic到底安不安全

atomic 实际上相当于一个引用计数器,这个大家很熟悉,如果被标记了atomic,那么被标记了的内存本身就有了一个引用计数器,第一个占用这块内存的线程,会给这个计数器+1,在这个线程操作这块内存期间,其他线程在访问这个内存的时候,如果发现“引用计数器”不为0,则阻塞,实…