LeetCode 子矩形查询

题目描述

请你实现一个类SubrectangleQueries,它的构造函数的参数是一个rows * cols的矩形(这里用整数矩阵表示),并支持以下两种操作:

  1. updateSubrectangle(int row1, int col1, int row2, int col2, int newValue)

    • 用 newValue 更新以(row1,col1)为左上角且以(row2,col2)为右下角的子矩形。
  2. getValue(int row, int col)
    • 返回矩形中坐标(row,col)的当前值。

一得之见(Java)

/**
* @author zhkai
* @date 2021年4月7日09:37:05
*/
public class SubrectangleQueries {
private int[][] rect = null; public SubrectangleQueries(int[][] rectangle) {
this.rect = rectangle;
} /**
* 用 newValue 更新以(row1,col1)为左上角且以(row2,col2)为右下角的子矩形。
*
* @param row1 子矩形左上角行坐标
* @param col1 子矩形左上角列坐标
* @param row2 子矩形右下角行坐标
* @param col2 子矩形右下角列坐标
* @param newValue 子矩形新值
*/
public void updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) {
if (rect != null) {
for (int i = row1; i <= row2; i++) {
for (int j = col1; j <= col2; j++) {
rect[i][j] = newValue;
}
}
}
} /**
* 返回矩形中坐标(row,col)的当前值。
*
* @param row 行坐标
* @param col 列坐标
* @return 当前值
*/
public int getValue(int row, int col) {
if (rect != null) {
return rect[row][col];
}
return -1;
}
}

一得之见(Python)

from typing import List

class SubRectangleQueries:
def __init__(self, rectangle: List[List[int]]):
self.data = rectangle def update_sub_rectangle(
self,
row1: int,
col1: int,
row2: int,
col2: int,
new_value: int):
"""
用 newValue 更新以(row1,col1)为左上角且以(row2,col2)为右下角的子矩形。
:param self:
:param row1: 子矩形左上角行坐标
:param col1:子矩形左上角列坐标
:param row2:子矩形右下角行坐标
:param col2:子矩形右下角列坐标
:param new_value:子矩形新值
"""
if self.data is not None:
for i in range(row1, row2 + 1):
for j in range(col1, col2 + 1):
self.data[i][j] = new_value def get_value(self, row, col) -> int:
"""
回矩形中坐标(row,col)的当前值
:param self:
:param row: 行坐标
:param col: 列坐标
:return: 当前值
"""
if self.data is not None:
return self.data[row][col]
else:
return -1

LeetCode子矩形查询的更多相关文章

  1. SqlServer父节点与子节点查询及递归

    在最近老是用到这个SQL,所以记下来了: 1:创建表 CREATE TABLE [dbo].[BD_Booklet]( [ObjID] [int] IDENTITY(1,1) NOT NULL, [P ...

  2. SQL 用;with 由所有的子节点查询到树结构中所有父节点

    1.所有的子节点查询到树结构中所有父节点 RETURNS @Tree Table(PID )) as begin --DECLARE @ID VARCHAR() --SET @ID = ' ;with ...

  3. LeetCode:矩形区域【223】

    LeetCode:矩形区域[223] 题目描述 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. 示例: 输入: -3, 0, 3, 4, ...

  4. mysql多表查询之子语句查询

    1.子语句查询 1.1子语句查询出来的结果集作为临时表名使用 select * from (select * from person) as aaa; -- as这个起别名关键字是可以省略的 1.2查 ...

  5. mysql学习 | LeetCode数据库简单查询练习

    力扣:https://leetcode-cn.com/ 力扣网数据库练习:https://leetcode-cn.com/problemset/database/ 文章目录 175. 组合两个表 题解 ...

  6. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  7. Oracle not in子连接查询不到值的问题(not in 不能查询null数据)

    前几天在项目中,做数据导入时,发现not in和in 查出来的条数不互补.ATABLE2明明中有些记录在ATABLE3中不存在,但是not in时查不出记录. CREATE TABLE ATABLE2 ...

  8. oracle表分区的,分区操作,分区查询,子分区查询

    一.摘要 有关表分区的一些维护性操作: 注:分区根据具体情况选择. 表分区有以下优点: 1.数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高. 2.数据修剪:保存历史数据非常的理想. ...

  9. Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)

    微软动态CRM专家罗勇 ,回复333或者20190508可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 先举个N:N关系的例子.这里以根据团队的名称查找其所有团队成员的 ...

随机推荐

  1. MySQL 的架构与组件

    MySQL 的逻辑架构图设计图 连接/线程处理:管理客户端连接/会话[mysql threads] 解析器:通过检查SQL查询中的每个字符来检查SQL语法,并为每个SQL查询生成  SQL_ID. 此 ...

  2. 『学了就忘』Linux基础 — 14、Linux系统的设备文件名和挂载

    目录 1.设备文件名 (1)为什么需要设备文件名 (2)硬件设备文件名命名规则 2.挂载点 3.挂载 (1)什么是挂载 (2)挂载前的分区要求 (3)小结(重点) 1.设备文件名 (1)为什么需要设备 ...

  3. python网站(持续更新)

    python官网: https://www.python.org/ python文档:中文 https://docs.python.org/zh-cn/3/ pypi网站: https://pypi. ...

  4. Python matplotlib 概率论与数理统计 伯努利分布 二项分布

    Python 代码实现 二项分布 import numpy as np import matplotlib.pyplot as plt import math from scipy import st ...

  5. Java中Lambda表达式的进化之路

    Lambda表达式的进化之路 为什么要使用Lambda表达式 可以简洁代码,提高代码的可读性 可以避免匿名内部类定义过多导致逻辑紊乱 在原先实现接口抽象方法的时候,需要通过定义一个实现接口的外部类来实 ...

  6. 公司项目被扫出来一个Druid未授权访问漏洞

    这不是阿里druid的监控页面吗?接下来查看项目配置 1.在web.xml中有如下配置: <filter> <filter-name>DruidWebStatFilter< ...

  7. [后端及服务器][WSL2(Ubuntu)+Docker]从零开始在WSL中安装Docker

    目录 简介 WSL 安装 开启虚拟化(BIOS) 检查系统版本 安装WSL 老版本安装详情 简介 想花三篇文章写下从Windows(WSL)上开启Docker部署php/node/vue/html等项 ...

  8. Kubernetes 中的 gRPC 负载均衡

    安装环境依赖 docker-desktop >= 4.1.1 kubernetes >= 1.21.5 go >= 1.17 protobuf >= 3.17.3 istioc ...

  9. IDEA maven Run Maven 启动方式

    首先想要使用 Run Maven 启动需要在IDEA设置里找到plugins  在plugins窗口下面找到Browse Repositories   打开Browse Repositories 下载 ...

  10. Redis集群与高可用

    Redis集群 redis cluster 是redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了redis分布式的需求,当一个redis节点挂了可以快速的切换到另一个节点.当遇到单 ...